コード規約をまたまた掘り返してみる
最近、自分でコードを書く機会がありました。それを機に以前書いコード規約について書いたコラムを読み返ました。結論としては、コード規約云々で書かれている内容は、リファクタリングでやれという結論に達しました。これに関してはそれぞれのスタイルで意見が分かれると思います。ただはっきり言えるのは、コード規約の運用を間違えているスキルの低いSIerは黙れということです。
順番としては、まず動くものを作るのが最初かと思います。一通り動くものができてから、コード規約に沿った形に整形していくのが正解かと思います。「いや、最初から規約を守っていれば手間が少なくてすむじゃないか!」という反論は受け付けません。下書きせずに長文を書くような真似をする人に、規約が必要なレベルのコードが書ける道理はありません。
当たり前の話ですが、規約を厳密に決めて守らせたければ、それに見合った工数とプランが必要です。単に「仕事だから間違えずにやってとうぜんだろ」では、全くプランになっていません。「バーンとコードを書いてレビューを通せば品質OK!」とか「コード規約が品質基準」と思っている方も多いようですが、そんなものは何の保証にもなりません。当人のスキルと、どういう根拠で何をやったかが全てです。
当たり前ですが、コードを書けない人(書けると思っているだけのマネージャクラスの人)では、いくらコードレビューをやっても無意味です。同様に、そういう人が作成したコード規約は品質を誤魔化すための儀式に使用するツールでしかありません。そういうものを基準に議論をしても時間の無駄にしかなりません。もちろん、品質なんて上がりません。
まず、コード規約を記載したファイルの拡張子が "xls" で更新されていないのであれば、PDCAが回っていません。読む価値は無いので破り捨てましょう。コード規約を守るだけでは品質なんて上がりません。プロジェクト全体のスキルが底上げされれば、それに併せて規約も変わります。規約の更新や運用にノウハウを蓄積することで、初めて品質は上がるのではないでしょうか。
コメント
とあるPM
趣味とか遊びの延長のようなシステム、アジャイルが許されるシステムなら同意
最悪バグが命に関わる航空機や車両制御、莫大な損害が出る金融系は規約を理解して厳守しないようなプログラマはお断り
Horus
> とあるPM さん
いろいろとコメントを読んで思ったことは、自分が本当に指摘したかったのは、コード規約云々というより、単にレベルの低いSIerはサッサとIT業界から去れということでした。
コード規約一つにしても、自分の想像しているより多くの事例や運用の仕方があるように思います。ただ、それを語るに至らないレベルの人を基準にコラムを書いてしまったと、読み返して気づいた次第です。
匿名
コーディング規約で、可読性の低いコードの書き方を強制されることが良くあるので
航空機だろうが、金融だろうがコーディング規約の強制は反対派かなぁ
本来なら、必要であれば実装した後に自動変換掛ければいいだけの話だし。
Horus
> 匿名 さん
個人的な経験でいえば、むしろ金融関連の方がレベルの低いエンジニアもどきが多かったです。可読性云々の前にスキル自体が圧倒的に低かった。そういう人のコーディング規約は、むしろ守らない方がマシなレベルでした。