Перейти к содержимому

Английский для Code Review

Почему для Code Review нужен особый английский

Заголовок раздела «Почему для Code Review нужен особый английский»

Code Review — это не просто техническая обратная связь, это командная коммуникация. Неудачные формулировки могут:

  • Выглядеть высокомерно или саркастично
  • Подорвать мотивацию коллег
  • Привести к недопониманию (особенно в межкультурных командах)
  • Создать впечатление, что вы «придираетесь», а не искренне помогаете

Хорошая новость: существует набор стандартных выражений, понятных всем.

“Nit” от “nitpick” (придираться), но в Code Review это позитивное слово — «это мелочь, не влияет на общую картину, но стоит улучшить».

- "This variable name is bad"
+ "Nit: could we rename this to `userCount`?"
+ "Minor: I'd prefer `userCount` for clarity"

Аббревиатура, означающая: вы проверили и согласны с мержем.

LGTM!

Или более формально:

LGTM. Great implementation.

Серьёзная проблема, которую необходимо исправить перед мержем.

Blocker: This will cause a race condition in `handleUserLogin`.
Here's why: ...

Когда кто-то нашёл баг, проблему производительности или скрытое требование.

Nice catch! I didn't think about the edge case where `null` ...

Когда вы не понимаете, почему написано именно так, или хотите понять дизайн-решение.

Could you elaborate on why we're using `Map` instead of `Object`?

Дополнительные стандартные выражения для разных ситуаций:

  • Nitpick: более прямое, чем “nit”
  • Looks good: частичное согласие
  • We should probably: мягкое предложение
  • Have you considered: открытый вопрос с альтернативой
  • Ship it: самое неформальное одобрение — можно выпускать

Формула: Контекст → Проблема → Предложение

- "This code is inefficient"
+ "In `processUserData`, iterating `O(n²)` might be slow with large datasets.
Could we use a `Set` to get `O(n)` instead?"
- "That's wrong"
+ "I see your approach. One concern: `Math.random()` isn't cryptographically
secure for auth tokens. Should we use `crypto.getRandomValues()`?"
- LGTM
+ LGTM! Curious: did you benchmark this against the regex approach we discussed?
I'm wondering if it's noticeably faster for production scale.

Ваша мысль на родном языке → три уровня английских вариантов → выбор наиболее подходящего.

Вы хотите сказать: «Здесь race condition, несколько запросов будут конфликтовать»

Basic (Direct):
"There is a race condition here, multiple requests will conflict"
Intermediate (Natural):
"Multiple concurrent requests could cause a race condition"
Native (Idiomatic):
"Concurrent requests might race here. Consider using a lock or queue."
Tip: Сразу предлагайте направление решения, а не только указывайте на проблему

Выберите «Native» или скомбинируйте несколько уровней:

+ Blocker: Multiple concurrent requests could race here.
Consider adding a lock or queue to serialize writes.
Ошибочное выражениеПричинаЛучший вариант
”This code is not good”Слишком прямолинейно, выглядит высокомерно”Could we refactor this for clarity?"
"You must change this”Звучит как приказ”We should probably change this"
"This is wrong”Обижает”This might cause X in scenario Y"
"Please to fix this”Грамматическая ошибка”Could you fix this?"
"The code of the function is bad”Чрезмерное использование “of""The function could be clearer”
СитуацияВыражение
Согласие + мелочьLGTM, just one nit: …
Несогласие с решениемI see your approach, but have we considered…?
Серьёзная проблемаBlocker: This will cause…
Маленькое предложениеNit: Could we…?
Одобрение + вопросNice! Could you explain why you chose…?
НеуверенностьI’m not sure about this. Could we discuss?
Полное согласиеLGTM! Ship it.