フォーマルなコーディング規約について

 コーディング既約に関してですが、個人レベルでなく、集団を対象としたフォーマルなコーディング規約を考えると、新鮮な奥深さを感じることがあります。特に、規約の良さを追い求めるだけでなく、人間の協力を得るための工夫が必要があるという点で、です。
 とりあえずフォーマルな規約で特に必要性を実感しているものをいくつか列挙します。

  • 計画・分析工程が必要。目標やリスクをまず考えなければならない。そしてC言語の欠点を徹底的にカバーするMISRA-Cのように、コーディング規約はリスク、目標に対して網羅的に設けなければならない。
  • コーディング規約の指示対象には、コードの記述方法以外にもドキュメントの整備も含ませなければならない。
  • 規約の実施を管理するプロセス(規約逸脱の手順、適合判断方法など)の整備も、規約制定に含ませなければならない。特に規約の適合判断方法(レビュー or ツール or etc..)の規定は、規約を導入するうえで必要であり、合わせてチェックツールの導入も望ましい。
  • 規約には、使用者を納得させるだけの理由付けや権威付けを行わなければならない。


 この上記のような考えが欠落した規約は、インフォーマルな規約、言い換えると各開発者のこだわりやノウハウの域を出ないと思います。それは何らかのプラスなる場合もあるでしょうが、きちんとした開発プロジェクトを支えるものとしては不安定さを感じます。