http://local.joelonsoftware.com/mediawiki/index.php/(Forum)_%E7%A7%81%E3%81%AF%E3%81%AA%E3%81%9C%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%8C%E5%AB%8C%E3%81%84%E3%81%8B
というものを読みました。ちょっと触発されたので、私もフレームワークについて書いてみます。
以前、私もフレームワークのようなものを開発していたことがあります。機能的には今のHibernateのようなデータベースのフレームワークでした。
その時にフレームワーク開発には「バランス感覚」というものが、とても重要になることを知りました。
「どんなものにも使える汎用的なものを作ろうとすると、どんなものに対してもろくに使えないものができあがる」
引用したコラムの中にも同じようなことが書かれていますが、これも実感できます。
「プログラマーは隠蔽するのは好き、隠蔽されるのは微妙」
フレームワークの開発していると色々なものを隠蔽したくなります。そうすれば使う人はきっと便利に違いないと。
しかし、フレームワークを使っていると、「そこは隠さないでよ」というところが多々でてきます。
例えば、Strutsのタグライブラリのアプローチは、はっきり失敗と言えます。
HTMLは比較的シンプルな言語です。それをわざわざ隠蔽することで、脳の負担は
HTML → 画面イメージ
で済むところが、
タグライブラリ → HTML → 画面イメージ
となってしまいます。
また、SQLについても同じことがあります。SQLはRDBを扱うために最適化されている言語です。これを隠蔽して、SQLを生成するための別の設定ファイルを準備させるのは全くナンセンスと言えます。
では、どんなアプローチがベターなのか。それは・・・(続きはWebで
