should|コードレビューでの推奨表現とその使いどころ

概要

should は、コードレビューで使われる「推奨されるが必須ではない」指摘を意味します。
機能的に問題はないものの、より良い設計・保守性・一貫性のために改善を提案したいときに使われます。

shouldは“提案”であり、“命令”ではありません。レビューの中間領域を担う柔軟な表現です。

must / should / nit の関係

優先度 ラベル 意味
must 修正しないとマージ不可
should 修正が望ましいが、マージは可能
nit 細かな改善(任意・スタイル)

shouldは「レビューを通す/通さない」の分岐ではなく、「より良い方向性を共有する」表現です。

コメント例と使用シーン

構造改善を提案する例

should: この関数、やや責務が多いため分割した方が保守しやすくなりそうです。

命名改善を示唆する例

should: `userData1`より`activeUserList`の方が意味が明確で読みやすくなるかもしれません。

一貫性を重視する提案

should: 他のファイルでは `fetchXXX` という命名が使われているため、揃えた方が良さそうです。

shouldを使うべきかの判断基準

  • 影響は限定的だが改善すると明らかに良くなる
  • 現状でも動作に問題はない
  • 個人の好みに依存せず、チーム方針・文脈に合致した改善である
  • 時間や状況によっては今は対応しない選択肢も成立する
Reviewer: shouldレベルの指摘いくつかあります。必要なものだけ対応でも大丈夫です。
Author: 確認しました。2点だけ修正して、他は次のリファクタリングで扱います。

会話例:shouldコメントの実務的やり取り

Reviewer: shouldですが、ここは早期returnにするとネストが浅くなりそうです。
Author: なるほど。視認性も上がりそうなので修正します。
Reviewer: この定数名、shouldで変えた方が用途が明確になりそうです。
Author: 他の箇所との整合があるので今回は見送ります。
Reviewer: 承知です。コメント残しておきますね。

チームでのshould運用方針

  • shouldは「優しさ」ではなく「建設的提案」であるという共通理解を持つ
  • PRテンプレートに「should指摘のうち対応した/しない理由」欄を設けてもよい
  • 無視されやすくならないよう、内容の質と意図の説明を意識する

shouldは「責任を伴わないから適当でいい」というものではありません。納得性と根拠があるほど、提案は生きた知見になります。

関連用語

  • must:必須対応指摘。shouldとは明確に区別する
  • optional:shouldよりさらに軽い、任意提案のラベル
  • readability:should指摘で多く使われる観点

実務視点まとめ

shouldはレビュー文化の「余白」であり、必須と任意の間にある合意形成の場です。
提案の質、説明の丁寧さ、そして信頼関係があって初めて、shouldは意味を持ちます。
レビューを止めずに改善を進めるための知的インフラとして、適切に運用しましょう。