ルールはゴールから逆算して最小限にし、守らせるのはできるだけ道具に任せる。例外なく守るルールと推奨のガイダンスはまず分ける。
目次
ルールはゴールから逆算する
問うのは「何をルールにするか」ではなくどのゴールを進めたいか(§8.2)
- 理由を説明できないルールは入れない
- 1つ増えるごとに全員に覚えて保守するコストがかかる
- 当たり前のこと、一部の人しか間違えないことは書かない
| 入れる種類 | 例 |
|---|---|
| 危険を避ける | 使いにくい言語機能への裁定 |
| ベストプラクティスを強制する | ファイル構成、新機能の制限 |
| 一貫性を組み込む | 優劣のない書き方を1つに決める |
読み手と一貫性に寄せる
書きやすさより読みやすさ、そして一貫性そのものに価値がある
- 意図した挙動(所有権の移動など)を呼び出し側で見せる
- 驚かせる構文は将来の保守者に通じないので避ける
- 性能のための例外や自動生成コードの除外は想定しておく
変えるのも守らせるのも仕組みで
変更は問題と直し方として提案し、守らせるのは道具に任せる
- 言語ごとの経験者がトレードオフで決め、全会一致になる
- チェッカーやフォーマッタは人の解釈と違ってぶれない
- ルールにしない知恵はガイダンス(ヒント集など)で流す