法則一覧

第86条保守性

コードの健全性を上げるなら承認する

すべての変更に完璧を求めるとレビューが遅くなり、遅いレビューはコードベースを良くするどころか悪くする。

Google

心得

完璧でなくても、良くなるなら通す

どうするか

変更によってコードが以前より確実に健全になるなら、自分なら違う書き方をしたとしても承認する。磨き込みの指摘には「Nit:」を付けて、作者が見送れるようにする。ブロックするのはコードを悪くする点だけにする。緊急時を除き、全体としてコードの健全性を確実に悪くする変更は承認しない。

なぜ起きるか

完璧なコードは存在しない。あるのは、より良いコードだけだ。完璧を待つレビュアーは誰も届かない基準にこだわり、その間、変更は止まったままになる。作者は作業をまとめて大きな変更にするようになり、そのぶんレビューは粗くなる。あるいは直すべきコードに手を出さなくなり、変更に含まれていたはずの改善はいつまでも入らない。差し引きで良くなるかを基準にすれば、マージのたびにコードベースは正しい方向へ進み、それでいてレビュアーは悪くする変更を拒める。

当てはまらなくなるとき

割れ窓理論:差し引きで改善だからと小さな欠点を一つずつ通していくと、見過ごされた欠点だらけのコードベースが残る。一つ通すたびに、次も通しやすくなる。

出典

Google「The Standard of Code Review」『Google Engineering Practices Documentation』(2019)。"favor approving a CL once it is in a state where it definitely improves the overall code health"、"there is no such thing as 'perfect' code—there is only better code"、任意の指摘に付ける「Nit:」の出典。

原典を読む

ロゴ:Public domain · Wikimedia Commons

引用するとき

Hammurabi『第86条 コードの健全性を上げるなら承認する』 https://kanywst.github.io/hammurabi/ja/laws/code-health-standard/

BibTeX
@misc{hammurabi-code-health-standard,
  title  = {コードの健全性を上げるなら承認する},
  author = {{Hammurabi contributors}},
  note   = {Hammurabi, § 86},
  url    = {https://kanywst.github.io/hammurabi/ja/laws/code-health-standard/}
}

本文は CC BY-SA 4.0 です。Hammurabi の名前と記事へのリンクを添えてください。

XBlueskyはてブLinkedIn

関連する法則

GitHub で誤りを指摘する