Flexでの開発って

http://blog.kei-z.biz/?eid=328491 を見て。


確かに、Flex2の開発って自由度が高い。
もっと縛りがあってもよかった。
せめて、Adobeさんに、Validatorとか、コンポーネントの作り方やら、バインディングのやり方やら、どのActionScriptMXMLでやるのどっちがいいか、推奨を決めてほしいくらいだ。


Cairngormは、サーバとの連携部分にフォーカスしただけで、それ以外の部分には特に触れていない。
大規模開発で均一な品質のコードを作るという点では、ぜんぜん足りていない。
正直、Cairngormを使っても、Cairngormを使わないで開発したときと、くらべて多少マシな程度。


均一な品質のコードを作るには、さらに以下の点を決めていかなければならない。(今思う限り)

  • コンポーネントの作り方
  • 入力値のバリデーションの実装方法
  • サーバ連携以外のイベントを扱うロジックの扱い方
  • サーバプッシュのイベントの扱い方(FDS使っているならば)
  • (Cairngormにおける)Modelの設計方針
  • データバインディングの扱い
  • サーバから取得したデータおよび、サーバに投げるデータのフォーマッティング

これらのことを決めておかないと、各個人がばらっばらなコードを書きます。
*1
間違いありません。
今のプロジェクトはそんな感じです。*2


今のプロジェクトのコードがどうなっているかというと、

  • コンポーネントをそもそも作っていない。。作ったとしても、ViewとLogicの盛り込みかたがさまざま。
  • バリデーションは、Validatorを使っていたり、使っていなかったり、ハイブリッドになっていたり。
  • バインディングを使っていたり、いなかったり。基本的にバインディングを使わずに、自前で値を入れているのがほとんど。(どうやらバインディングの使うポイントが分かりづらいらしい。)
  • Modelは、恣意的な単位で作られている。


どれも今思うと、当然最初から考えておくべきことなんだけど。
初のFlex2プロジェクトで、Flex2が提供している各機能がどういうものかを、ちゃんと理解していない状態で、そのため、規約を整備しても、その規約がさまざまな機能を実装するのに過不足ないか見定めることができなかったため、規約を整備しませんでした。


やりながら、統一とっていけばいいや〜。


とか思ってました。
甘かったです。
ごめんなさい。

*1:あとは、2度押し対応のような一般的な非機能要件にどう対応するかってのもあります。

*2:ちなみに、Cairngormは使ってません。Caringorm似のフレームワークを自作しています。