レビューでは、インデントや変数名より先に「この変更によって、利用者に何が起きるか」を確認します。目的と危険を理解してからコードを読みます。
今回やること

次の順で差分を確認します。
- 変更の目的と成功条件
- 入出力・HTTP status・既存利用者との契約
- 失敗時と再試行時の動き
- 認証・認可・秘密情報
- 保存データ、migration、同時実行
- テストと手動確認の根拠
- 最後に、命名と読みやすさ
具体例:申込APIの再送
通信失敗時に申込を再送する変更をレビューするとします。目的は「失敗を減らす」だけでは足りません。「最初の保存後に応答が失われても、同じ申込が二件できない」が成功条件です。
次の質問で契約を確認します。
同じ申込キーで再送した時、既存の結果を返しますか?
400や403も再送していませんか?
保存に成功した後の通知は二重になりませんか?
誰がこのAPIを呼べますか?
クライアントの再送ループだけでなく、サーバーの一意制約、通知処理、既存のテストも見ます。変更行の外にある契約が壊れていないかを確認するのがレビューです。
コメントは確認方法まで書く
「冪等性が心配です」だけでは、作者が次に何をすればよいか分かりません。
最初のPOSTが保存後にtimeoutした場合、同じキーの再送で
二件作成されない契約でしょうか。
同一キーの統合テスト、またはDBの一意制約で確認したいです。
条件・影響・必要な証拠を添えます。必ず直す不具合、仕様の質問、任意の改善は分けて伝えると、優先順位も明確になります。
成功確認
承認する前に、目的に対する代表的な成功と失敗を確認します。再送の例なら、通常の一回、同じ入力の再送、権限のない利用者、保存後の応答喪失を分けます。statusだけでなく、作成件数と通知回数も見るのがポイントです。
レビューの最後に「どのリスクを、どのテストまたは制約で確認したか」を短く残すと、後から判断をたどれます。
よくあるつまずき
画面で隠れているから権限も安全だと思う
表示を隠してもAPIを直接呼べる場合があります。ルート、サービス、対象データの所有者条件まで確認します。
テスト名だけを読む
成功statusだけを確認するテストでは、保存が二重になったことや副作用が増えたことを見逃します。assertしている値まで読みます。
練習
メールアドレス変更の差分を想像し、本人確認、重複、確認リンクの期限、古いログインID、並行した変更要求について、それぞれ一つずつレビュー質問を書いてください。