English for Code Reviews: Professional Phrases and Vocabulary
A practical guide to professional English phrases for code review comments — from polite suggestions to strong blockers, nitpicks, and approvals.
Code reviews are one of the most text-heavy forms of communication in software development. Unlike spoken conversation, your written comments are permanent, asynchronous, and read without the benefit of tone of voice or facial expression. That makes word choice critical. A poorly worded comment can sound aggressive when it was meant to be helpful, or vague when it needed to be decisive. This guide covers the English phrases and vocabulary you need to write code review comments that are clear, professional, and constructive.
Understanding Review Comment Types
Before writing any review comment, it helps to classify what kind of comment it is. Most teams distinguish between three categories:
- Blocker (blocking issue): Must be resolved before the code can be merged. Indicates a defect, a security issue, a correctness problem, or a violation of a critical standard.
- Nitpick (nit): A small, non-blocking stylistic preference. The author may take it or leave it. Commonly prefixed with
nit:. - Suggestion (non-blocking): A genuine improvement idea that the author should consider, but the reviewer is not insisting upon.
Being explicit about which type you are writing saves significant back-and-forth communication.
Phrase Reference Table
| Comment Type | Example Phrase |
|---|---|
| Blocker — correctness | ”This will cause a race condition when two requests hit this simultaneously.” |
| Blocker — security | ”This exposes the raw database error message to the client — this needs to be sanitised before merge.” |
| Blocker — logic | ”This condition is inverted — as written, this will fail for the majority of valid inputs.” |
| Suggestion — refactor | ”Consider extracting this into a separate method — it would make the logic easier to follow and easier to test.” |
| Suggestion — naming | ”The name data is a bit generic here. Something like userPreferences might communicate intent more clearly.” |
| Question — clarification | ”Could you help me understand the reasoning here? I want to make sure I’m not missing something.” |
| Question — simplification | ”Could we simplify this logic? It looks like the inner conditional could be collapsed.” |
| Nitpick — style | ”nit: this could be written more concisely as a single expression, but I’ll leave it to you.” |
| Nitpick — naming | ”nit: minor naming inconsistency with the rest of the module — not blocking but worth noting.” |
| Praise | ”Nice approach here — this is a much cleaner solution than what we had before.” |
| Approval | ”LGTM. A couple of minor nits above but nothing blocking.” |
Writing Polite but Clear Suggestions
The most common mistake in code review English is being either too vague or too blunt. “This is wrong” is blunt. “Not sure about this” is too vague to be useful.
Good suggestion language has three components: observation, reasoning, and alternative (optional).
Examples
Too vague:
“This seems off.”
Too blunt:
“This is wrong.”
Well-formed suggestion:
“This loop iterates over the full array on every call — consider caching the result outside the loop to avoid the O(n²) complexity.”
Too directive:
“Change the variable name.”
Well-formed suggestion:
“Consider renaming
tempto something that describes what it holds — it took me a moment to understand its purpose.”
The word consider is one of the most useful words in code review English. It implies a recommendation without mandating it. Similarly, phrases like “it might be worth…”, “one option would be…”, and “you could also…” signal a suggestion rather than an instruction.
Writing Blockers Clearly
When something must be fixed before merge, clarity is more important than softness. Hedging a blocker creates confusion about whether the comment is required or optional.
Blocker Phrases
- “This will cause a memory leak — the listener is never removed.”
- “Blocking: this endpoint is missing authentication — it would expose user data to unauthenticated requests.”
- “This will fail in production — the environment variable is not set in the deployment configuration.”
- “This is a correctness issue: the function returns early before flushing the write buffer.”
Notice the use of will rather than could or might — this signals certainty, not possibility. For genuine blockers, be direct.
Asking Questions Without Sounding Accusatory
Questions are often more effective than statements in code reviews because they invite explanation rather than defensiveness. However, phrasing matters.
Accusatory (avoid):
“Why would you do it this way?”
Neutral and curious:
“Could you help me understand the reasoning behind this approach? I want to make sure I’m not missing a constraint.”
Opening a discussion:
“I may be wrong here, but I thought X — does this change that assumption?”
Checking your own understanding:
“Just to confirm my understanding: this function is only called in a single-threaded context, right?”
Approval and LGTM Language
“LGTM” (Looks Good To Me) is the standard approval signal in English-language code reviews. Here are variations with different nuances:
- “LGTM.” — Clean, unqualified approval.
- “LGTM — a couple of minor nits above but nothing blocking.” — Approval with a pointer to non-blocking comments.
- “Approved with minor comments — happy for you to merge after addressing the nit in the
processOrderfunction.” — Approval conditional on a specific, non-critical change. - “Looks good to me — well-structured change.” — Written out in full, slightly more formal, can include a brief positive note.
Praise Language
Giving praise in code reviews builds a positive team culture and is worth doing when you genuinely mean it:
- “Really clean solution here — much easier to follow than the previous implementation.”
- “Good catch on the edge case — I had missed that.”
- “Nice use of the strategy pattern — this will make it easy to add new payment providers later.”
- “This test suite is thorough — good coverage of the failure scenarios.”
A Note on Tone in Asynchronous Communication
Because code review comments are read without audio context, they can come across as harsher than intended. A few practices that help:
- Lead with the observation, not the judgment. Say what you noticed before you say what you think about it.
- Use “I” framing where appropriate. “I found this hard to follow” lands differently from “this is hard to follow.”
- Acknowledge when you’re uncertain. Phrases like “I might be wrong here” or “I’m not 100% sure, but…” reduce the risk of an authoritative-sounding comment that turns out to be incorrect.
- Separate nitpicks from blockers clearly — either with prefixes (
nit:,blocking:) or in plain text.
Key Takeaways
- Classify every comment as a blocker, suggestion, or nitpick — make it explicit.
- Use “consider” and “might be worth” for suggestions; use “will” and direct language for blockers.
- Questions like “Could we simplify…?” and “Could you help me understand…?” are more effective than blunt statements.
- LGTM, “Approved with minor nits,” and praise language all have distinct roles in a review.
- In async written communication, precision and tone control are more important than in spoken conversation.