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.
Navigating the Nuances: Addressing Potential Concerns Proactively
Let’s be honest – code reviews can sometimes feel a bit fraught. Even with the best intentions, delivering feedback – especially critical feedback – can be challenging, particularly when you’re used to a different communication style or if the technical area is unfamiliar territory. A key element of professional English in this context isn’t just about using precise terminology, but about anticipating potential concerns and addressing them proactively. This demonstrates respect for your reviewer’s time and expertise, and fosters a more collaborative environment. It’s not about immediately pointing out flaws; it’s about setting the stage for constructive discussion.
One common area of misunderstanding is around phrasing that can feel overly directive. Instead of saying “This needs to be refactored,” which can sound judgmental, consider something like: “I was wondering if we could explore alternative approaches here – perhaps focusing on [specific aspect] to improve readability and maintainability in the long run.” This softens the suggestion with an explanation of why you’re raising it. Similarly, when encountering a complex section, don’t just say “This is confusing.” A better approach might be: “I’m finding this section slightly challenging to follow at first glance. Could we perhaps add a brief comment explaining [specific concept] or restructure it for clarity?” Framing your feedback as an invitation to discuss rather than a demand for change significantly reduces defensiveness.
Furthermore, don’t underestimate the power of acknowledging effort. If you see someone has put in significant work and just needs a little polish, a simple “This is shaping up really well! Just a couple of minor points…” can go a long way. It validates their hard work and sets a positive tone for the review. Similarly, when pushing back against a potentially problematic solution – perhaps one that doesn’t fully align with established coding standards – start by recognizing its merits: “I appreciate you tackling this challenge; it’s a clever solution! I just have a slight concern about [specific aspect] and whether it might impact [related area].” This demonstrates you’ve carefully considered the proposal before raising your reservations. Remember, effective communication is often about building bridges, not erecting barriers.
Finally, when discussing potential risks – particularly around security or performance – be exceptionally clear and specific. Avoid vague statements like “This could be a problem.” Instead, articulate exactly what the risk is: “I’m concerned that this approach might introduce a vulnerability to [specific type of attack] if not handled carefully. Could we explore [alternative solution] for enhanced security?” Demonstrating technical understanding and proactively outlining potential consequences shows professionalism and reduces the likelihood of misunderstandings leading to serious issues.