04-コーディング規約を自動化する

プログラマが知るべき97のこと」の4つ目は、コーディング規約とその自動化に関する話題です。「コーディング規約は可能な限り自動的・強制的に守られるべきであり、規約自体を状況に応じて適切に変えていく事が大切」と述べられています。
ところで、コーディング規約と言うとどうしてもネガティブなイメージがありませんか?自分の経験したケースだと、Javaのコーディング規約なのに10年以上前のCのコーディング規約をそのまま適用、Java1.4の頃に作られた規約をそのままJava5に適用、フレームワークではpublicフィールドを許可・推奨しているが規約を変えられない、誰もその規約がある理由を説明できない等々、上からの一方的で理不尽な押しつけの代名詞の1つです。これらは、コーディング規約を遵守すると品質が上がるという思い込みから来ているのではと思います。しかし、そんな事は管理ごっこでしかありません。残念な事によく聞く話ですが・・・。勿論、コーディング規約はプロジェクト毎にゼロから作っては大変ですから、基準となるものがあることは良いことです。しかし、それを運用するプロセスも作ってこそ意味があると思います。自分はまだまだそこまで達していませんが、少しづつ社内の文化も変わってきているので、今後着手したい所の1つです。
自動化に関しては社内全体の意識が高い所であれば当然のように導入していると思います。去年辺りからHudson界隈が盛り上がってきていることもあり、導入しようとしているところも増えているでしょう。今後、CIは標準的な開発ツールになるでしょう。自分はまだHudsonでビルドからテストまでを行う程度でしか活用していませんが、どうしてもプロダクトの開発を優先してしまい、環境整備・特にコーディング規約などは後回しにしがちです。自分と上司を説得できるように心がけましょう。
尚、Javaは特に充実している言語です。テストツール、ビルドツール、FindBugsCheckStyle、Coverageツール、Metrics測定ツール幾らでも無償で試すことができます。自分もローカル環境では使っていますが、自動化まではやっていませんでした。今後はチーム開発で活用できるよう、ノウハウを溜めていきたいかと思います。

プログラマが知るべき97のこと

プログラマが知るべき97のこと