コーディング規約を考える前に

開発プロジェクトのコーディング規約をどうすべきか相談を受けることがある。コーディング規約なんて探せばいろいろ出回っているし、自分たちでゼロから作っても良いとは思うけど、この数年はいつも下記のように答えることにしている。

「Code Completeを読め。この内容を全て実践してもまだ問題が残るのなら、改めて相談に乗る」

この本にはコーディング規約だけではなく、基本的な設計手法、適切な関数の行数、変数の命名規則、複雑化するソフトへの対処、バグを出さないための考え方など豊富な指針が大変細かく記載されており、ソフトウェア開発者のバイブルと言っても良い本だ。ソフトウェア開発者ならこの本に書かれている程度の事は理解していて欲しいし、理解しておくべきだと思う。上下巻に載っている情報量は膨大なものがあるけど、開発者にとっては全て重要なガイドラインであり、不可欠の内容と言っても過言ではない。

使用する開発環境によってはコーディング規約に違反していないか自動的にチェックしてくれるものがあり、確かにこれはこれで便利なのだけど、チェックの目的を正しく理解できていない開発者が時々いるのでかえって厄介だったりする。例えば、一つの関数を200行以内に納めるべきだからと言って、長い関数を機械的に分断してその間を引数で繋いでも、本質的に何の解決にもなっていないのだ。ルールを満たせば良いと考えて、実はその意味や背景を理解していない開発者が少なくないと感じる。

周囲を見る限り、Code Completeの内容を理解して日常の開発作業に生かしている開発チームはアウトプットの品質が良いし、仮に独自の追加規約が必要になっても充分に活用できていたりする。これに対して「初めに規約ありき」のチームではチェック作業が形骸化することが多く、品質向上には役立たないことが多い。たかがコーディングと思われがちだが、コードを見れば開発者の実力は一目瞭然なのだ。

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して