Английский для Code Review
Почему для Code Review нужен особый английский
Заголовок раздела «Почему для Code Review нужен особый английский»Code Review — это не просто техническая обратная связь, это командная коммуникация. Неудачные формулировки могут:
- Выглядеть высокомерно или саркастично
- Подорвать мотивацию коллег
- Привести к недопониманию (особенно в межкультурных командах)
- Создать впечатление, что вы «придираетесь», а не искренне помогаете
Хорошая новость: существует набор стандартных выражений, понятных всем.
10 обязательных выражений для Code Review
Заголовок раздела «10 обязательных выражений для Code Review»1. Nit (мелочь)
Заголовок раздела «1. Nit (мелочь)»“Nit” от “nitpick” (придираться), но в Code Review это позитивное слово — «это мелочь, не влияет на общую картину, но стоит улучшить».
- "This variable name is bad"+ "Nit: could we rename this to `userCount`?"+ "Minor: I'd prefer `userCount` for clarity"2. LGTM (Looks Good To Me)
Заголовок раздела «2. LGTM (Looks Good To Me)»Аббревиатура, означающая: вы проверили и согласны с мержем.
LGTM!Или более формально:
LGTM. Great implementation.3. Blocker (блокирующая проблема)
Заголовок раздела «3. Blocker (блокирующая проблема)»Серьёзная проблема, которую необходимо исправить перед мержем.
Blocker: This will cause a race condition in `handleUserLogin`.Here's why: ...4. Nice catch (хорошо подмечено)
Заголовок раздела «4. Nice catch (хорошо подмечено)»Когда кто-то нашёл баг, проблему производительности или скрытое требование.
Nice catch! I didn't think about the edge case where `null` ...5. Could you elaborate (можете пояснить подробнее)
Заголовок раздела «5. Could you elaborate (можете пояснить подробнее)»Когда вы не понимаете, почему написано именно так, или хотите понять дизайн-решение.
Could you elaborate on why we're using `Map` instead of `Object`?6-10: Nitpick, Looks good, We should probably, Have you considered, Ship it
Заголовок раздела «6-10: Nitpick, Looks good, We should probably, Have you considered, Ship it»Дополнительные стандартные выражения для разных ситуаций:
- Nitpick: более прямое, чем “nit”
- Looks good: частичное согласие
- We should probably: мягкое предложение
- Have you considered: открытый вопрос с альтернативой
- Ship it: самое неформальное одобрение — можно выпускать
Формула вежливости в Code Review
Заголовок раздела «Формула вежливости в Code Review»При указании на проблему
Заголовок раздела «При указании на проблему»Формула: Контекст → Проблема → Предложение
- "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.Режим Express для Code Review
Заголовок раздела «Режим Express для Code Review»Ваша мысль на родном языке → три уровня английских вариантов → выбор наиболее подходящего.
Сценарий: указание на баг
Заголовок раздела «Сценарий: указание на баг»Вы хотите сказать: «Здесь 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.Типичные ошибки в Code Review
Заголовок раздела «Типичные ошибки в Code Review»Распространённая интерференция
Заголовок раздела «Распространённая интерференция»| Ошибочное выражение | Причина | Лучший вариант |
|---|---|---|
| ”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. |