Information
2007-01-09
規約ベースのフレームワークのほうが覚えることが増える?
設定の記述量を減らす→規約ベースになる→覚えないといけないことが増える(ように見える)、という図式ですね。ただ、規約がないF/Wでは設定を記述するための書式を覚えないといけないので実は覚えないといけないことの量は大して違いはないのかもしれませんが、設定はIDEやプラグインなどによって補完可能だけれども規約は補完されにくいため、結局は規約ベースのF/Wの方が覚えないといけないことが多くなるという気はしています。
ひがやすを blog
よく規約を覚えるのが大変と言う意見を見ますが、規約は、規約ベースのフレームワークを使う使わないに関わらず(ほとんどの場合)必要です。一人で開発していれば別ですが、複数の人数で開発している以上、規約を守って開発する必要があると思います。
各プロジェクトごとに、規約を考えて、それをいちいちソースコードや設定ファイルに書くのは、大変なので、あらかじめ妥当だと思われる規約をフレームワーク側で決めておくので、それを守っていればソースコードや設定ファイルを書かないくても良いですよというのが、最近の規約ベースのフレームワークの基本的な考え方です。
それにたいていの規約ベースのフレームワークは、独自の規約にカスタマイズできるようになっていますし、そもそも規約を決められないというなら、自由にソースコードや設定ファイルを書くこともできます。たとえば、Teedaだって、JSPにいろいろ設定を書きたい、faces-config.xmlをばりばりかきたい、もちろんOKです。Seasar2でも全部XMLファイルに書きたい、もちろんOKです。
なにも記述していないのに、全部自動的に処理されて不安という気持ちもわかりますが、せっかくコンピュータを使っているんだから、楽できるのは楽をすればというのが私の考えです。
後、Seasar2の場合は、規約もIDE(Dolteng)が補完します。最初からIDEで補完しやすいように規約が設計されているのです。
だったらConvention?
> Convention
なじみの無い言葉(だと個人的には思います・・・)は
逆効果のような気がします。
とはいえ良い代案見つかりません。約束、とか?
> 規約
Seasar2に限って言うと、規約がまとまって提示されていないのが
そもそものとっつきにくさだと感じています。
(規約を纏めたページってseasar.orgに無いですよね?)
規約って良いイメージがあまり無さそうな単語なので、上司とかに説明をする時は『ルール』って言葉を使ってます。参考になれば。
Teedaには、かなりの量の規約(暗黙知?)があるような気がします。
これが一箇所にまとまったドキュメントになると非常に助かります。
規約の場合だと「書いてないのに」、規約上の
動作になるわけですよね。
つまり、規約をすべて厳密に知って常に意識してないと
知らない間にどの規約が発効するか分からん、それちょっと困るね、って感じです。
名前やファイル配置を(それと知らずに)(リファクタリングで)変更
したときにわけのわからない現象に悩まされます。
設定ファイルで(該当パス等が書かれていた場合)も同様に悩まされます。
ただし設定ファイルなら grep で見つかるんですが…。
で、何よりもこのケースの障害は原因がわかったときにとんでもなく
腹が立つ、というのが嫌悪感を持つ人の感覚でしょうね:p
やっぱり何事も最初は規約や仕様を覚えないと始まりませんよね。。。
アンドロイドが登場する時代には、何も覚えなくとも自分の要求を察して実行してくれるようになるかもしれません。