Genius Framework について 吉津 卓保( S2 ファクトリー株式会社)
自己紹介
seagirl という名前でブログをやっています。
Agenda Genius Framework とは 開発動機 Genius のアーキテクチャ Genius の便利なコマンド
1. Genius Framework と は
Flex アプリケーションの開発( mx パッケージのライ ブラリと mxmlc コンパイラを使った開発)における 、アーキテクチャレイヤのフレームワーク
??
長い!
よくわかんない!
と言われる … orz → もうちょっと簡潔に
プログラムをどうやって分ける か プログラムをどこに書くか
ということを決めたルール のようなもの → アーキテクチャ
Genius はアーキテクチャを 提案するもの
ルールに従うことで、 色々幸せになれる 仕様変更に強い 複数人数で開発しやすい 余計なことで悩まない
2. 開発動機
Web で見かけるサンプル <mx:Application xmlns:mx=" creationComplete="init()"> <![CDATA[ private function init():void { message.text = 'Hello, world!'; } ]]>
MXML を使えば簡単に Web アプリが作れる!! → おお 素晴らしい!!
だけど、こんな感じに書いていって、本当に ちゃんとしたアプリケーションが作れるの?
ぐちゃぐちゃ
あっという間に数千行のスパゲッティなコー ドになるので、おすすめ出来ない。
プログラムを整理したい
フレームワークが必要
Cairngorm Adobe 公式 ケアンゴームと読む ほぼアーキテクチャのみ
Cairngorm のアーキテクチ ャを構成する登場人物 Service ServiceLocator Delegate Command Responder Event EventDispatcher FrontController ModelLocator View ViewHelper ViewLocator ValueObject
複雑すぎる! 分割が細かすぎる! めんどくさい! 楽になってない!
ちょっとした機能を追加するだけなに、 5 個も 6 個もクラスを作らなければならな い。
うんざり
作ろう
3. Genius のアーキテクチャ
Model Thread View
シンプル!
Model データの保持 データの処理
View プレゼンテーションロジック( AS ) UI 定義( MXML )
ViewBase (AS) The Flex Code-Behind Pattern View (MXML) 書いているとき動いているとき View インスタンス
code-behind-pattern/ 詳細
Thread コントローラ層( ユーザーイベントの ハンドリングやモデルの操作など) サービス層( 外部サービスとのやりと り)
詳細
耐久性 クラスファイル 300 個くらいの実案件で 使っています。
4. Genius の便利なコマンド
プロジェクトや各クラスの 作成はコマンドで一発!
コマンド名目的 genius プロジェクトのスケルトンを作成 generate Model, View, Thread 各クラスのスケルトンを作成
%./genius -n HelloSample -p jp.seagirl.sample -o ~/Desktop created./application/src/main.mxml created./application/src/application/core/Application.as created./application/src/application/threads/ChangeStateThread.as created./application/src/application/views/MainBase.as created./application/src/application/views/Main.mxml created./application/src/application/views/IntroBase.as created./application/src/application/views/Intro.mxml genius コマンド
%./generate UserModel created./../src/application/models/UserModel.as done. generate コマンド
便利!
ただし、
シェル環境が必要 Mac OS X → Terminal.app Windows → Cygwin な ど
Demo
Genius Framework 1.5 本日正式リリース (安定板)
参考資料 プロジェクトホーム 開発者のブログ
ご清聴ありがとうございました