Blocking(ブロッキング)とは
Blocking(ブロッキング)とは
意味と文脈上の位置づけ
Blocking(ブロッキング)とは、コードレビューにおいて「この指摘が解消されない限り、Pull Request(PR)はマージしてはならない」とされる重大な指摘を意味する表現です。
この言葉はGitHubの公式レビューオプションには存在しませんが、現場でのコメントやレビューツール(例:Gerrit、Phabricator)などではレビューの優先度・強度を示すラベルとして頻繁に用いられます。
blocking: 仕様を満たしていないため、修正が必要です。
使用される場面と意図
- 明確な仕様違反(例:必須項目のバリデーション漏れ)
- ロジックミス(例:負数の扱いでクラッシュ)
- 保守不能な構造(例:密結合のままリリース)
これらの問題が放置されたままマージされると、ユーザー影響・バグ発生・設計崩壊など重大なリスクを引き起こす可能性があります。
そのため、Blockingコメントは強い修正要求として扱われ、Approveの条件からも外されるのが一般的です。
実務での使われ方と会話例
ケース:APIのバージョン指定忘れ
Reviewer:
blocking: APIのversion指定がありません。
このままだと互換性が壊れた時に後方影響が出ます。
ケース:ユースケース不一致
Reviewer:
blocking: 本件、ビジネス仕様として「キャンセル不可」の扱いが求められています。
UI変更と連携しないと誤解を招くリスクがあります。
SlackやPRコメントの例
この修正、blocking出しておきます。
指摘2件ありますが、どちらもblockingではないです。
注意すべき点と誤解の防止策
⚠ Blockingが乱用されるとレビューが硬直化する
- 担当者が萎縮して修正をためらう
- 小さな設計差異や好みの問題までblockingにされる
対策
- Blockingコメントには根拠(仕様・バグ・保守性)を明示
- チーム内で「Blocking基準」を共有・文書化する
- 指摘が「意見」レベルなら
non-blocking
と明記する運用を取り入れる
よくある関連用語との違い
用語 | 意図 | マージ可否への影響 |
---|---|---|
Blocking | 修正必須の重大指摘 | ❌ マージ不可(原則) |
Must | 同上(別表現) | ❌ マージ不可(原則) |
Should | 修正が望ましいが任意 | ⚠ 判断に委ねられる |
Nit | 軽微な指摘 | ✅ 修正なしでも可 |
結論
- Blockingは「このままマージすべきでない」という明確な修正要請
- 使うときは理由を具体的に書くことで信頼性が増す
- チーム文化として「Blockingの意味と基準」を共有しておくと、レビューが円滑になる