読書要点「プリンシプルオブプログラミング」第3章 7つの設計原理


7つの設計原理

ソフトウェアの設計の際に考慮すべき7つの観点である。
障害を起こさない品質の良いコードを作るための経験則である。
設計原理を抑えることで品質につながるので、コードレビューの時に意識しておくことでレビューの方針がぶれず、核心的なチェックを行うことができる。
もちろんコードを書く際も抑えておきたい。

単純原理

シンプルで単純なコードを書くのが良い。
複雑なところにバグが出るため、過剰なテクニックは使わず、シンプルで見通しの良いコードを心がけるべきである。

同型原理

形式にこだわったほうが良い。
同じ種類のものは同じように下記、例外や特別扱いを避ける。
同型にこだわっていると、逆に異質なものが目立つようになり、その異質なものはバグの原因となりやすいため障害を見つけやすくなる。
また同型であるほど統一感が生まれ、コードの可読性が高まる。
コードに一貫性を持たせることを強く意識したい。

対称原理

形式の対称性にこだわったほうが良い。
対称性はコードの読みやすさをもたらし、書き手側にも思考の整理を促す。
カウンターパートを常に意識して整理されたコードを書きたい。

改装原理

階層構造にこだわったほうが良い。
抽象レベルで整理した構造をもとに、適切な処理や呼び出しを記述する。

線形原理

処理の流れは直線であることにこだわったほうが良い。
むやみな分岐や状態の数の増加は、コードの見通しの悪さにつながる。
可能な限り分岐や繰り返しを避け、上から下へ処理が流れていく単純なものにしたい。

明証原理

ロジックの明証性にこだわったほうが良い。
コードは何度も読まれるため、直感的でわかりやすく、正しさが伝わりやすいコードを書くべきである。

安全原理

安全性にこだわったほうが良い。
一見必要はなくとも着実に条件を吟味しておき、大事故にならないようにする。
必然性のないところや曖昧なところは不具合の温床なので、特に安全な動作を意識してコードを書きたい。