ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

開発に最も必要なもの

Tuesday, 14 November 2006 00:55 by sabro

SeasarがDoltengというEclipseプラグインを出している。私はこれを触ったわけではないので製品自体に関して詳しくは述べないのだけど、TeedaとUujiというフレームワークを使用して開発する際に、生産性を飛躍的に高める効果があるらしい。

ひがやすを氏のブログに書いてあったのだが、EJB3、JPA、JSFを単に導入しただけでは生産性がうまく上がらず、独自に開発スピードを上げるための仕組みを作る必要があり開発したそうだ。

一応、社内フレームワークを開発している立場として普段私が思っていることがある。

「フレームワークよりライブラリを。設定より規約、規約よりツールを。」

Seasarプロジェクトの考え方と似ており、私の考え方がひとりよがりのものでなかったようで少しほっとした。

フレームワークが必要な層というのは内部設計ができないレベルの人達である。そのレベルの人達に対してフレームワークはコーディングの筋道を示し、コード品質を一定に保つのに一役買う。

しかし、、プログラマがある一定レベルを超えていると、フレームワークはかえって足かせになってしまう場合がある。現場の仕様は複雑で様々な例外的処理を含んでおり、一定の筋道に沿ってコードを記述していくのが難しい場面がしばしば出てくる。

内部設計が出来るレベルのプログラマに必要なのは統制のとれたフレームワークでなく、開発生産性を上げるライブラリなのだ。私は普段フレームワークを作る際は、わざとプログラマの自由度を高く設定する。そして、再利用可能なちょっとした関数や、単純にコードの記述量を減らせるライブラリに重点を置いて開発している。

それに近い理由で開発の生産性を高めるツールの重要度は高い。Railsが世に出てから「設定より規約」の考え方が浸透してきたが、私はこれは少なくとも一定以上の規模を持つシステムでは当てはまらないと考えている。設定ファイルは記述するのが面倒だが、システムに柔軟性を与える。変更する必要の高い定数を切り出しておくことで、可搬性、可用性が大きくアップする。

面倒だから書かないではなく、面倒だからツールに書かせるなり工夫しようという考え方が重要なのだ。Seasarは、設定ファイルを書かないのではなく設定ファイルを使用しつつも考え抜かれたデフォルト値を使うことで設定なしでプログラムを動作させることが可能になっている。

時にフレームワーク作成は、開発者に対する自分の考え方の押し付けであったりする。反対に一見地味なライブラリやツールの作成に必要なのは地道な努力と謙虚な姿勢なのである。実際の現場が求めているのは、フレームワークという押し付けでなくライブラリ、ツールという援助(愛)なのではないだろうか。

Tags:  
Categories:   Architecture
Actions:   Permalink | Comments (36) | Comment RSSRSS comment feed