yojikのlog

yojikのブログです

フレームワークがどこまでやるか

Click Frameworkを生のまま利用すると、やはり(理解は簡単だけど)実装が煩雑な部分があったり、開発者に自由度がありすぎて、チーム開発には向かない部分もあるかもしれない。koichikさんのClick煩雑っぽくねという意見も否定できない。*1
Clickを採用するとすれば、Clickをベースに業務*2フレームワーク層を作成し、それを使ってもらうことになると思う。例えばTableに関してはそのアプリ共通のテーブルクラスを作って、それを利用してもらうとか*3。 Clickはその手の拡張が凄く簡単だ。逆にJSFで業務固有のコンポーネントを作りこむのは、すごくスキルと労力がいりそうだし、多分そこまでやることは無いだろう。労力とメリットがつりあってない。
つまり僕は、汎用的なフレームワークの層と業務フレームワークの層を分けて考えていることが多い。汎用的なフレームワークの層は、なるべく手を入れやすいようにシンプルに保ち、「開発者の手間の吸収」は業務フレームワークでやるべきではないかと思う。そこもSIerの差別化要因になるのでは?という淡い期待もある。
ただし自分自身がそういう案件が多いからそう思ってるのかもしれない。開発者の背景によっていろんな立場があるかなと。
これから派生した、JavaでDSL云々に関しては、自分はあまり意見ないです。ただDSLといっても色々あるはずなので、単純にバッサリ切り捨てずにJavaがどんな種類のDSLに向いている/向いていないかを考察しておく必要があるとは思います。アノテーションなんかはDSLへの道を開いてる気がしますしね。

追記:
このFWを汎用FWと業務固有FWにわけてみるといった、再利用性に応じたレイヤ構成の元ネタはこちらです。
http://d.hatena.ne.jp/yojik/20050802/1122996692

*1:手書きでSwingとかやってた人は、煩雑に思わないし難しくないと思うけど、今となっては少数派ですよね。SwingはGUIビルダあるし

*2:プロジェクト固有

*3:凄くオールドスタイルっぽいけど