コマンド名 目的 - seagirl.jp

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