Code Completeは、次のような多くの時代を超越した概念をカバーしています。
- 強い結束
- 疎結合
- 良いルーチン名
- 防衛的プログラミング
- 自己文書化コード
- ソフトウェアレビュー
- 単体テスト
確かに今日関連しています。
CCで支持されている概念の一部は、新しい言語で構文的に実施されています。たとえば、C#では、サブスコープの変数をスーパースコープの定義を隠す方法で定義できません。
変数名のハンガリー語表記などのその他の概念は、メインストリームプログラミングの途中で落ちています(ただし、Win32 APIをまだ使用している人は、変数が生きていることを強く主張します)。それでも、変数の命名規則の背後にある本当の概念は、必要な意味を伝え、コードを明確にすることです。私が主張する概念も時代を超越しています。
私が思い出すことができるものから(そして私のCCの由緒あるコピーの簡単な覗き見から)、私はそれが確かにレビューする価値があると言うでしょう。
しかし、「神話の男月」の真に時代を超越した性質に上昇するとは思わない。MMMは、誰が作業を行っているのか、どのように、なぜ作業を行っているのかという問題に対処しています。(人間の)コミュニケーションのコストと複雑さも同様です。MMMは、私たちが行うすべての基本である問題に対処します。それに対して、CCは、私たちがそれを行う方法の実際的かつ実用的な問題に焦点を当てています。別の言い方をすれば、プロジェクトが予定より遅れており、マネージャーがチームに100人を追加することを決めた場合、わかりやすいコードを書いても実際には違いはありません。
CCは、私たちの業界を悩ませている重要な問題に実際には対処していません。しかし、多くの場合不可能な状況で最良の結果を得るために努力するための良い基盤を提供します。
ソフトウェア開発を気にする人には必ず読む必要があると思います。復習が必要な場合は、MMを再読することをお勧めします。開発チームを率いたり、グループの標準を設定したり、新しい開発者をトレーニングしたりする場合は、CCを読み直す価値があります。それ以外では、個人的にはずっと前に資料をCCに内面化し、日常的に実践していることがわかりました。
それが役に立てば幸いです。確かに私のお気に入りの2つです。