Convention Over Configuration

Ruby on Railsの哲学である"Convention Over Configuration"。これってある意味では実にRuby的だ。

Rubyを初めて触ったときに「大文字で始まるのは定数」って強制されるのが何だか不自由に感じたものだったけれど、Cに連なる系譜の文法で、この規約を破るようなコードなんてどうせ書かないんだよね。だったら、定数を定義するための無用なトークンが増えるよりは規約自体を文法にしてしまった方がいい。同じように、RoRのあの良くできているディレクトリ構成に敢えて逆らう理由なんか無いんだから、どのディレクトリに何のファイルがあるのか設定する必要はない。新規開発に於いて、テーブル名とエンティティのクラス名の関連が自明でない設計をする理由なんかないんだから、機械的対応で十分だ。対応関係を設定する必要なんか無い。

"Convention Over Configuration"の哲学を表す言い方は多分いっぱいあるだろう。 LLDN での 高橋征義さんの発表 によれば、「細かく設定するより適切な規約で無設定に」とのことだけれど、私風に言えば「どうせそうするべきなんだから、設定いらんでしょ?」