規約以上のこと

規約を複雑化しすぎるとわけがわからなくなる。
わけがわからなくなると使用されなくなる。
使用されなくなると無法地帯と化す。
無法地帯と化すとスパゲティソースが生まれる危険性が高まる。
そんな状態はおいしくないので、まず使用されなくなることは避ける。


っとなると、必然的に記述量は減り、記述内容は抽象化される。
抽象化された内容は具体性が乏しくなり、解釈の仕方にはバリエーションがでる。
これは規約の穴をつくことが容易になってくることを示す。


規約に
「if文の中では関数の戻り値を直に判定しないようにしましょう」とか
「変数名の略記は曲解を招く恐れがあるのでしないようにしましょう」とか
「while文は必ず前判定にしましょう」とか
細かいことを書かれると必ず鬱陶しい。
前述でいうなら9割5分はそれで大丈夫なのだが、
残りの重要さ抜群の5分の部分で支障がでてくる。
それゆえ記述されない。そんな程度の話である。


ゆえに、「規約に書いてないからこれは大丈夫」ってな主張を聞くと頭が痛い。
そんなチンケなあら捜しゲームはやりたくないのに引きずり込まれた感があるからである。


規約は所詮ガイドラインであり、プログラムの方向性を決定付けるものではない。