続Javaコーディング規約

http://itpro.nikkeibp.co.jp/article/COLUMN/20060302/231571/

コーディングの心得5カ条で定めた5つの心得を紹介する

間違いではないが,まあJavaに限らず常識の範疇だな.
「ネーミングは分かりやすく」にしても言うは易しというやつで,本当に分かりやすい名前を付けるのは極めて難しい.*1

同じコードを1つにまとめる作業は,どちらかといえば,コーディング時よりリファクタリング時に行うことが多いが,

まさかとは思うが「コーディング(開発)フェーズ」の『次』に「リファクタリングフェーズ」があったりするのかな?そういう開発者は相手にしたくないな.

上の例は「for文のカウンタは通常0からスタート」というタイトルの規約である。これまでのプロジェクトで,for文のカウンタが1から始まっていることが数回あったために,標準規約として採用した。

まあ確かにJavaの習慣としては0から始まる.むしろなんでわざわざ1から始めたのか理解に苦しむ*2

しかしこれはさほど大きな問題をもたらすものでもない.ループカウンタはループの内部の極めて狭い範囲にしか影響しないし,なによりもし問題がこれだけならば「リファクタリング可能」なのだ.

本当に深刻な設計上/実装上のミスというものは,恐ろしいことに「テスト不可能」な場合が多い.もちろんテスト不可能であるから自動的にリファクタリングも不可能になる.ループカウンタを0から始めるように統一したとしても,残念ながらテスト可能性は保証されない.

まず,実装工程が25%程度終了した段階で,

どうやって「25%」を測ってるんだろうね?コードの行数?開発期間?

Javaコーディング規約2003は規約数が多いため,策定した当初は各プロジェクトで受け入れられるかどうか不安があった。しかし公開後の反響は想像していたよりもはるかに良く,現在では多くのプロジェクトで採用されている。

そりゃあ馬鹿に付ける薬はないからな.反対するだけ時間のムダだと知っているのだろう.

入門書をマスターしたプログラマが研修でコーディング規約を学ぶようになれば,良いコードが書けるプログラマの増加につながると考えている。

まず間違いなく無駄だろうね.

第一に,こんな低レベルの技術を囓ったくらいで,良いコードを書けるようになることはまずない.第二に,もし万が一良いコードを書けるようになったとしたら,その人は相変わらず待遇が低いまま変わらないことに嫌気がさして辞めていく.

少なくともJavaベースのシステム開発において,実装工程でコーディング規約を導入することが,保守性や生産性を大幅に向上させることは筆者らの経験から明らかである。

これを導入して大幅に上がったと言うことは,今までが想像を絶するほど救いようがないほどにレベルが低かったということだろうね.ご愁傷様です.

*1:安全運転の心得「事故を起こさないこと」.これで安全運転が実現できれば苦労はない.

*2:ひょっとしてループカウンタは0からだけど,配列のインデックスが1からだったりして....それも全部規約で定めるつもりか?