規約(ルール)の全てが悪なのか?


使い古された内容ですが、「設定(ルール)」は悪なのでしょうか?
答えはNO!です。


規約は大別すると良い規約と悪い規約の2種類存在します。
1.直感的な規約(良い規約)
2.暗黙的な規約(悪い規約)


では、直感的な規約とは、どの様なものなのでしょうか?
答えは、受け手にとって規約(ルール)が素直に受け止められるものが、直感的な規約なのだと思います。


Strutsに代表されるActionFormへのデータバインディングの規約は、理解しやすく疑問に思った方は少ないのではないでしょうか。
*HTMLタグのname属性とFormプロパティーのsetterを同一名称にしておく事により、自動セットされる機能。
この様な機能が直感的な規約だと思います。


では暗黙的な規約とは、どの様なものでしょうか?
利用者が、ルールを理解し記憶しなければいけない物は、暗黙的な規約なのだと思います。
簡単にいえば、素直に受け入れられない物は、暗黙的な規約になると思います(本来の暗黙的ないみとは違いますが…)。
利用者が、ドキュメントを読んで「そうなのか」と思われる規約は負けなのです。
例えば、●●●●●は、これに当てはまるのではないでしょうか。


フレームワーク開発者の良くないところは、全ての物事を1つの方式で統一しようとするところにあると思います。
設定がはやれば全て設定ファイルで、規約がはやれば全て規約で、アノテーションがはやれば全てアノテーションで...みたいに。


方法を統一する事は悪い事ではありません。むしろ良い事といえるでしょう。しかし「無理やり」はいけません。歪んできます。
何事にも「ころあい」があります。これはプログラム(フレームワーク)も同じだと思います。