Hyper Great Creator やすを このページをアンテナに追加 RSSフィード

Information

2007-01-09

規約ベースのフレームワークのほうが覚えることが増える?

設定の記述量を減らす→規約ベースになる→覚えないといけないことが増える(ように見える)、という図式ですね。ただ、規約がないF/Wでは設定を記述するための書式を覚えないといけないので実は覚えないといけないことの量は大して違いはないのかもしれませんが、設定はIDEプラグインなどによって補完可能だけれども規約は補完されにくいため、結局は規約ベースのF/Wの方が覚えないといけないことが多くなるという気はしています。

ひがやすを blog

よく規約を覚えるのが大変と言う意見を見ますが、規約は、規約ベースフレームワークを使う使わないに関わらず(ほとんどの場合)必要です。一人で開発していれば別ですが、複数の人数で開発している以上、規約を守って開発する必要があると思います。

プロジェクトごとに、規約を考えて、それをいちいちソースコードや設定ファイルに書くのは、大変なので、あらかじめ妥当だと思われる規約フレームワーク側で決めておくので、それを守っていればソースコードや設定ファイルを書かないくても良いですよというのが、最近規約ベースフレームワークの基本的な考え方です。

それにたいていの規約ベースフレームワークは、独自の規約カスタマイズできるようになっていますし、そもそも規約を決められないというなら、自由にソースコードや設定ファイルを書くこともできます。たとえば、Teedaだって、JSPにいろいろ設定を書きたい、faces-config.xmlをばりばりかきたい、もちろんOKです。Seasar2でも全部XMLファイルに書きたい、もちろんOKです。

なにも記述していないのに、全部自動的に処理されて不安という気持ちもわかりますが、せっかくコンピュータを使っているんだから、楽できるのは楽をすればというのが私の考えです。

後、Seasar2の場合は、規約IDE(Dolteng)が補完します。最初からIDEで補完しやすいように規約が設計されているのです。

habuakihirohabuakihiro 2007/01/09 16:11 多分「規約」という言葉自体が面倒くさい印象を与えるんじゃないかな、と思ったりします。違う言い方をするだけでイメージ変わると思いますです。

higayasuohigayasuo 2007/01/09 16:38 確かに、日本語の規約は、守らなければいけない面倒なものってイメージありますね。
だったらConvention?

hal2006hal2006 2007/01/09 18:12 はじめまして。
> Convention
なじみの無い言葉(だと個人的には思います・・・)は
逆効果のような気がします。
とはいえ良い代案見つかりません。約束、とか?
> 規約
Seasar2に限って言うと、規約がまとまって提示されていないのが
そもそものとっつきにくさだと感じています。
(規約を纏めたページってseasar.orgに無いですよね?)

higayasuohigayasuo 2007/01/09 18:36 Seasar2(DIContainer)に限っていえば、SMART deployのパッケージ構成にしたがってれば、OKです。http://s2container.seasar.org/ja/S2.4SmartDeploy.html

bobbyjam99bobbyjam99 2007/01/09 18:53 はじめまして。
規約って良いイメージがあまり無さそうな単語なので、上司とかに説明をする時は『ルール』って言葉を使ってます。参考になれば。

higayasuohigayasuo 2007/01/09 19:19 全体の表記は、Conventionにしておいて、最初のほうで、Conventionは「チーム開発を円滑に進めるためのルール」くらいの説明を入れるとよいのかもしれません。

higayasuohigayasuo 2007/01/09 20:08 英語表記だと敷居が高いかもしれないのでやはり「ルール」が良いかも。

habuakihirohabuakihiro 2007/01/09 20:56 ネーミングルールでコーディングレス、みたいなのをさくっと実感できる言葉を見つけたら勝ちだと思うんですけどね。名前重要。IoCがDIでダイコンで、とかってのと同じようなもんだと思います。

r-westr-west 2007/01/13 00:56 単語帳では「convention:慣例・習慣」って覚えたような気がします。だめですかね。

miztakamiztaka 2007/01/22 16:19 >『Seasar2(DIContainer)に限っていえば、SMART deployのパッケージ構成にしたがってれば、OKです。』
Teedaには、かなりの量の規約(暗黙知?)があるような気がします。
これが一箇所にまとまったドキュメントになると非常に助かります。

higayasuohigayasuo 2007/01/22 18:20 Teedaは確かに、まだまだドキュメントが足りないと思います。2月いっぱいで解消させる予定です。

undertakerundertaker 2007/02/06 12:02 設定ファイルだと「書いた」通りの動作(になるはず)ですけど
規約の場合だと「書いてないのに」、規約上の
動作になるわけですよね。
つまり、規約をすべて厳密に知って常に意識してないと
知らない間にどの規約が発効するか分からん、それちょっと困るね、って感じです。

queuequeue 2007/02/17 01:35 名前やファイル配置によってフレームワークの挙動が変わる場合、
名前やファイル配置を(それと知らずに)(リファクタリングで)変更
したときにわけのわからない現象に悩まされます。
設定ファイルで(該当パス等が書かれていた場合)も同様に悩まされます。
ただし設定ファイルなら grep で見つかるんですが…。

で、何よりもこのケースの障害は原因がわかったときにとんでもなく
腹が立つ、というのが嫌悪感を持つ人の感覚でしょうね:p

passengerpassenger 2008/03/07 16:38 電気の起電力じゃないですけど一度スイッチが入れば後は楽ですけどね。
やっぱり何事も最初は規約や仕様を覚えないと始まりませんよね。。。
アンドロイドが登場する時代には、何も覚えなくとも自分の要求を察して実行してくれるようになるかもしれません。