- Authors
- Name
- はじめに
- 1. 変更要求 (Requesting Changes)
- 2. 質問する (Asking Questions)
- 3. 称賛する (Giving Praise)
- 4. 提案する (Making Suggestions)
- 5. 承認する (Approving)
- 6. よく使う略語と慣用表現
- 7. PR説明の書き方
- 8. 困難な状況への対処
- 実践演習:レビューシナリオ
- まとめ

はじめに
グローバルチームで働いたり、オープンソースにコントリビュートするとき、コードレビューの英語は必須スキルです。しかし多くの韓国の開発者が「これを英語でどう言えばいいんだろう?」という悩みに陥ります。
この記事では場面別のコードレビュー英語表現をまとめ、実際のPRレビューでそのままコピーして使えるテンプレートを提供します。
1. 変更要求 (Requesting Changes)
直接的な要求
# 明確な変更要求
- "Please rename this variable to something more descriptive."
- "This should be extracted into a separate function."
- "We need to add error handling here."
- "Please add a comment explaining why this is necessary."
- "This constant should be defined at the module level."
やわらかい要求(より好ましい)
# "I wonder..." パターン — やさしく提案
- "I wonder if we could simplify this by using a list comprehension."
- "I wonder if this would be clearer as a named function."
# "What do you think about..." パターン
- "What do you think about extracting this into a helper function?"
- "What do you think about using a dataclass here instead?"
# "Consider..." パターン
- "Consider using `defaultdict` here to avoid the key check."
- "Consider adding a timeout to this HTTP call."
# "It might be worth..." パターン
- "It might be worth adding a docstring to this class."
- "It might be worth caching this result since it's called frequently."
Nit(些細な指摘)
# 些細な事項は "nit:" プレフィックスで表示(non-blocking)
- "nit: trailing whitespace on line 42"
- "nit: this could be a one-liner: `return x if x > 0 else 0`"
- "nit: inconsistent naming — other functions use snake_case"
- "nit: missing newline at end of file"
2. 質問する (Asking Questions)
意図・理由を聞く
# なぜそうしたのか聞くとき
- "Could you explain why we need this check here?"
- "What's the reasoning behind using a raw SQL query instead of the ORM?"
- "Is there a specific reason for choosing `threading` over `asyncio`?"
- "I'm curious — why did you go with this approach?"
動作の確認
# コードがどう動作するか確認するとき
- "What happens if `user` is None here?"
- "How does this behave when the list is empty?"
- "Does this handle the case where the API returns a 429?"
- "Will this work correctly with concurrent requests?"
テスト/エッジケース
# テスト関連の質問
- "Do we have test coverage for the error path?"
- "Have you considered adding a test for the edge case where input is empty?"
- "How was this tested? I couldn't find a corresponding test file."
- "Could you add a regression test for this fix?"
3. 称賛する (Giving Praise)
# 具体的に称賛する(具体的であるほど良い)
- "Nice refactoring! This is much more readable now."
- "Great use of the Strategy pattern here."
- "Love the comprehensive error handling."
- "This is a really elegant solution. Well done!"
- "Excellent test coverage — especially the edge cases."
- "Good catch on that race condition!"
- "TIL about this API — thanks for introducing it!"
- "This abstraction is going to save us a lot of time."
4. 提案する (Making Suggestions)
代替案の提示
# コードとともに代替案を提示する例
# 既存コード:
# for item in items:
# if item.status == 'active':
# result.append(item.name)
# レビューコメント:
# "We could simplify this with a list comprehension:
# `result = [item.name for item in items if item.status == 'active']`"
# 代替案を提示する表現
- "An alternative approach would be to use..."
- "You might want to look into using X instead."
- "One option is to..., which would give us..."
- "Have you considered using X? It handles Y automatically."
- "A simpler way to achieve this would be..."
パフォーマンス/安全性に関する指摘
# パフォーマンス問題の指摘
- "This creates a new list on every iteration. Consider moving it outside the loop."
- "This O(n squared) approach might be slow for large datasets. A set-based lookup would be O(n)."
- "We should use `str.join()` instead of string concatenation in a loop."
# 安全性問題の指摘
- "This looks like it could be vulnerable to SQL injection."
- "We should validate the input before passing it to the shell command."
- "This secret should not be hardcoded — let's use environment variables."
5. 承認する (Approving)
# LGTM (Looks Good To Me) バリエーション
- "LGTM!"
- "LGTM — just one minor nit, but nothing blocking."
- "Looks good to me! Nice work."
- "Approved! Clean implementation."
- "LGTM with the suggested change. Feel free to merge after."
- "Ship it!"
# 条件付き承認
- "LGTM once the test is added."
- "Approved with minor suggestions — up to you whether to address them."
- "Looks good overall. Just the one blocking comment about error handling."
6. よく使う略語と慣用表現
# コードレビューでよく使われる略語
LGTM = Looks Good To Me(承認)
PTAL = Please Take A Look(レビュー依頼)
WIP = Work In Progress(作業中)
RFC = Request For Comments(意見募集)
TIL = Today I Learned(今日学んだこと)
IIRC = If I Remember/Recall Correctly(記憶が正しければ)
AFAIK = As Far As I Know(私の知る限り)
IMO = In My Opinion(私の意見では)
IMHO = In My Humble Opinion(僭越ながら)
FYI = For Your Information(参考までに)
WDYT = What Do You Think?(どう思う?)
ACK = Acknowledged(確認済み)
NACK = Negative Acknowledgment(反対)
7. PR説明の書き方
PR Titleのパターン
# Conventional Commits スタイル
feat: add user authentication via OAuth2
fix: resolve race condition in cache invalidation
refactor: extract payment logic into separate service
docs: update API documentation for v2 endpoints
perf: optimize database queries for user dashboard
test: add integration tests for payment flow
chore: upgrade dependencies to latest versions
PR Descriptionテンプレート
## What
Brief description of what this PR does.
## Why
Explain the motivation. Link to issue/ticket if applicable.
## How
Describe the approach taken and any important design decisions.
## Testing
- [ ] Unit tests added/updated
- [ ] Integration tests pass
- [ ] Manual testing done (describe what was tested)
## Screenshots (if applicable)
Before / After screenshots for UI changes.
## Notes for Reviewers
Any specific areas where you'd like focused feedback.
8. 困難な状況への対処
意見が衝突したとき
# 丁寧に反対意見を表現する
- "I see your point, but I think X might be more appropriate here because..."
- "I respectfully disagree — here's my reasoning: ..."
- "That's a valid approach, but I have concerns about..."
- "I understand the trade-off. Let me explain why I went this route..."
理解できないとき
# 正直にわからないと言うとき
- "I'm not familiar with this pattern — could you point me to a reference?"
- "I'm not sure I understand this part. Could you walk me through it?"
- "This is a bit over my head. Can you add a comment explaining the logic?"
レビューが遅れているとき
# レビュー遅延について
- "Sorry for the delayed review — I'll take a look today."
- "Apologies, this slipped through my notifications. Reviewing now."
- "I need a bit more time to review this thoroughly. ETA: tomorrow morning."
実践演習:レビューシナリオ
シナリオ1:エラー処理の不備
# レビュー対象コード:
def get_user(user_id):
response = requests.get(f"https://api.example.com/users/{user_id}")
return response.json()["data"]
# 良いレビューコメント:
"What happens if the API returns a non-200 status code?
We should add error handling here. Something like:
response.raise_for_status() # Raises HTTPError for 4xx/5xx
Also, `response.json()["data"]` will raise a KeyError
if the response doesn't contain a "data" field.
Consider using `.get("data")` with a sensible default."
シナリオ2:パフォーマンス問題
# レビュー対象コード:
def find_duplicates(items):
duplicates = []
for i in range(len(items)):
for j in range(i + 1, len(items)):
if items[i] == items[j] and items[i] not in duplicates:
duplicates.append(items[i])
return duplicates
# 良いレビューコメント:
"This has O(n squared) time complexity, which could be a problem
for large lists. Here's a more efficient approach using
Counter from collections:
from collections import Counter
def find_duplicates(items):
return [item for item, count in Counter(items).items() if count > 1]
This runs in O(n) time. WDYT?"
まとめ
コードレビューはコード品質だけでなく、チームコミュニケーションの核心です。重要な原則:
- やさしく提案する: "Consider..." / "What do you think about..." / "I wonder if..."
- 具体的にフィードバックする: コード例と理由をセットで提示
- 些細な指摘はnitで表示: BlockingとNon-blockingを区別
- 称賛も具体的に: "Nice!"より"Great use of the Strategy pattern"
- 略語を活用: LGTM、PTAL、nitなどで効率的にコミュニケーション
クイズ(8問)
Q1. LGTMの意味は? Looks Good To Me(承認)
Q2. "nit:"プレフィックスの意味は? 些細な指摘で、修正しなくてもマージをブロックしない(non-blocking)コメント
Q3. "What do you think about..."パターンを使う理由は? 直接的な命令より柔らかく提案し、建設的な対話を促すため
Q4. PTALの意味は? Please Take A Look(レビュー依頼)
Q5. PR Titleに"feat:"、"fix:"プレフィックスをつけるコンベンション名は? Conventional Commits
Q6. "I respectfully disagree"はどんな状況で使う? レビュアーの意見に丁寧に反対するとき
Q7. SQLインジェクション脆弱性を発見したときの適切な英語表現は? "This looks like it could be vulnerable to SQL injection."
Q8. WDYTの意味は? What Do You Think?(どう思う?)