Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一
8章スタイルガイドとルール
Shaindel Schwartz 著
Tom Manshreck 編
ほとんどのエンジニアリング組織には、コードベースを統制するルールがある。ソースファイルが保存される場所についてのルール、コードの書式整形(formatting)についてのルール、命名、パターン、例外†1、スレッドについてのルールといったものだ。大多数のソフトウェアエンジニアは、どのように業務を遂行するかを統制するポリシーのセットの範囲内で作業している。Googleでは、コードベース管理のために、ルールを定義するスタイルガイドのセットを保守している。
†1 訳注:コード内で、エラーを含む、通常とは異なる処理を要するイベント。例外が発生した際に備え、例外を捕捉して処理する例外処理コードを用意する必要があり、プログラミング言語によってはそのための言語機能を用意している。
ルールは法である。ルールは単なる提案や推奨ではなく、厳密で強制的な法だ。したがって、ルールは普遍的な強制力を持つ。使用の必要性に基づいて承認を得られた場合を除き、ルールは無視してはならない。ルールとは対照的に、ガイダンスは推奨事項やベストプラクティスを提供する。ガイダンスの個々の事項には従った方がよく、従うのが非常に望ましいことでさえある。だがルールと異なりガイダンスには通常、適用の度合いにばらつきの余地がある。
我々は自分たちで定義したルール、つまりコードを書く際のやるべきこと・やってはいけないことで従わなければならないものを、プログラミングスタイルガイドとして集成しており、それがカノニカルなものとして扱われている。「スタイル」という言葉は、書式整形のプラクティスに限定して集めたものを示唆する、ここでは少々実態にそぐわないかもしれない名称である。我々のスタイルガイドはそれ以上のものであり、コードを統制する規定の全集なのだ。それは、我々のスタイルガイドが厳密に規定されているという話ではない。「できるだけ説明的で、常識の範囲内にある( ...