1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「このコード微妙ですね」を言い換えるだけでチームの空気が変わる。エンジニアのためのコードレビュー言い回し辞典

1
Posted at

はじめに:レビューの「言い方」で、チームの寿命が決まる

コードレビューは技術的に正しい指摘をする場です。しかし、指摘の「内容」が正しくても、「言い方」が悪ければチームは壊れます。
「こんな書き方ありえない」──技術的には正しい指摘かもしれませんが、書いた本人は二度とPRを出したくなくなります。
逆に、同じ内容を「こういう書き方もありますが、こちらだとこんなメリットがありますね」と伝えれば、相手は「なるほど!」と前向きに修正できます。
この記事は、レビューでよく使われる「刺さりすぎる表現」を「建設的な表現」に変換する辞典です。チームに共有して、レビュー文化のベースラインにしてください。


変換辞典:30のビフォー・アフター

🔴 全般・コード品質

# ❌ 刺さりすぎる表現 ✅ 建設的な表現
1 「このコード微妙です」 「ここ、こう書くとより意図が伝わりやすくなりそうです」
2 「なんでこう書いたんですか?」 「この実装にした背景を教えてもらえますか?」
3 「普通こう書かない」 「一般的にはこのパターンが多いですが、何か意図がありますか?」
4 「意味が分かりません」 「ここの処理の意図を理解したいので、コメントを追加できますか?」
5 「ここ全部書き直してください」 「このアプローチだと〇〇の懸念がありそうです。代案として△△はいかがですか?」

🟡 命名・可読性

# ❌ 刺さりすぎる表現 ✅ 建設的な表現
6 「変数名がひどい」 d だと何のデータか分かりにくいので、deliveryDate はどうですか?」
7 「読めません」 「ここ、処理を関数に切り出すと見通しがよくなりそうです」
8 「マジックナンバーやめて」 86400 に名前をつけると、将来読む人に意図が伝わりやすくなります」
9 「コメントが足りない」 「WHY(なぜこうしたか)をコメントに残してもらえると、レビューしやすくなります」
10 「複雑すぎます」 「ここの認知負荷が高いので、3つの関数に分割するのはどうでしょう?」

🟢 設計・アーキテクチャ

# ❌ 刺さりすぎる表現 ✅ 建設的な表現
11 「設計がおかしい」 「こちらの設計だと〇〇のケースで困りそうです。△△パターンを検討しませんか?」
12 「これは筋が悪い」 「長期的に見ると、この方向だとメンテコストが上がりそうです」
13 「やり方が違います」 「チームでは〇〇パターンを採用しているので、合わせてもらえると嬉しいです」
14 「この責務はここじゃない」 「この処理は〇〇層の責務に近いので、移動するとテストしやすくなりそうです」
15 「密結合すぎ」 「ここをインターフェースで切ると、将来の変更に強くなりますね」

🔵 テスト・エラー処理

# ❌ 刺さりすぎる表現 ✅ 建設的な表現
16 「テスト書いてない」 「この変更にテストがあると安心してマージできます」
17 「このテスト意味ない」 「このテストが何を保証しているか、テスト名で表現できるともっと良くなりそうです」
18 「エラー処理がない」 「ここで例外が起きた場合、ユーザーにはどう見えるか考えてみましょう」
19 「エッジケース考えてない」 null や空配列が来た場合もカバーできると堅牢になります」
20 「このcatch空っぽじゃん」 「エラーを握りつぶすと調査が大変になるので、最低限ログに出しませんか?」

🟣 パフォーマンス・セキュリティ

# ❌ 刺さりすぎる表現 ✅ 建設的な表現
21 「遅い」 「データ量が増えた時にN+1問題になりそうです。事前にJOINするのはどうですか?」
22 「セキュリティ的にアウト」 「ここ、ユーザー入力がそのまま使われていて脆弱性になりそうです。一緒に確認しましょう」
23 「SQLインジェクションされるよ」 「プレースホルダーを使うと安全になります。〇〇のドキュメントに例がありますね」
24 「これ脆弱」 「セキュリティの懸念があるので、リリース前に一度一緒に確認させてください」
25 「本番で死ぬよ」 「本番のデータ量だとタイムアウトする可能性があります。インデックスを追加しませんか?」

⚪ ポジティブなフィードバック(最も重要)

# 場面 ✅ 使うべき表現
26 良い命名を見つけた時 「この変数名、めちゃ分かりやすいです 👍」
27 きれいな設計の時 「この責務の切り方、すごく綺麗ですね。参考になります」
28 テストが丁寧な時 「エッジケースまでカバーされていて安心してLGTMできます」
29 前回の指摘が反映された時 「前回話した〇〇、ちゃんと反映されてますね。ありがとうございます!」
30 全体的に良いPRの時 「PR全体の構成が見やすくて、レビューしやすかったです。この調子!」

レビューする側の心構え

1. 「指摘」と「提案」と「質問」を使い分ける

多くのレビューツール(GitHub等)では、コメントに接頭辞をつけて意図を明確にできます。

[MUST]  これは修正を必須とします。理由は…(指摘)
[WANT]  こうするとさらに良くなりそうです(提案・任意)
[ASK]   この実装にした理由を教えてください(質問)
[NITS]  本当に細かいことですが…(好み。スルーOK)
[GOOD]  ここ良いですね!(称賛)

2. 良い点を最低1つ書く

全てのコメントが指摘だけだと、書いた人は「全否定された」と感じます。最低1つは良い点を見つけて言葉にすることで、指摘が受け入れられやすくなります。

3. 自分のコードだと思って読む

「他人のコード」だと思うと厳しくなりがちです。「1ヶ月後にこのコードの障害対応をするのは自分かもしれない」と思って読むと、建設的な視点になります。
この辞典をチームのレビューガイドラインのベースにしてください。言い方を変えるだけで、PRのコメント欄が「戦場」から「学びの場」に変わります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?