静的解析は、置くだけでは効かない。効くかどうかは開発者に信頼されるかで決まる。
目次
誤検出は開発者の反応で測る
指摘を見ても開発者が何もしないなら、それは実質的な誤検出
- 誤検出の少ない解析だけを出し、信号の乏しいものは外す
- 結果ごとに「役に立たない」と返せる仕組みで測り続ける
- 解析の無効化機能をなくしたら、すぐ苦情が来た
見せる範囲を絞る
編集されたファイルや行の、新しく出た警告だけを示す
- 巨大なコードベースの全体結果は、動かすのも読むのも無理
直し方まで示し、直せるものは機械が直す
指摘は理解でき、すぐ直せるものにする
- 可能なら修正案を添え、自動で直せるものは自動で直す
- スタイルの問題に人間のレビュアーの時間を使わない
開発者がすでにいる場所に出す
結果は普段の開発の流れの中で出す
- レビュー画面に出す(Google では Tricorder が集約、§20.3)
- コンパイラのチェックは警告でなくエラーにする
- エディタ内なら1秒未満、理想は100ミリ秒未満
関連
- スタイルガイドとルール — ルールはできるだけ道具で守らせる
- コードレビュー — 人間に機械で分かることを見させない
- 知識共有 — 静的解析はベストプラクティスを広める手段でもある