Code review на бэкенде: чек-лист

↑ 9.1 Техлид на бэкенде · → Следующая

Обязательно~3 мин чтенияУровень: senior

Зачем это на собесе

Ждут, что вы умеете проводить ревью системно, а не придираться к стилю.

Объяснение

Цели ревью: найти дефекты и риски, поделиться знанием, поддерживать единые практики. Не цель: показать превосходство.

Чек-лист бэкенд-ревью (от важного к менее важному):

ОбластьВопросы
Корректностьрешает ли задачу? граничные случаи (null, пусто, дубли, часовые пояса)?
Безопасностьавторизация на каждом эндпоинте, проверка владельца (IDOR), валидация входа, секреты, инъекции, персональные данные в логах
Данныемиграции обратно совместимы, индексы под новые запросы, транзакционные границы, N+1, размеры выборок
Конкурентностьгонки, идемпотентность, повторы сообщений, блокировки
Надёжностьтаймауты, ретраи, поведение при сбое зависимостей, CancellationToken
Asyncнет .Result, async void; корректное await и освобождение ресурсов
Производительностьлишние аллокации в горячих путях, запросы в циклах, буферизация больших данных
API-контрактломающие изменения, коды ответов, версионирование, документация
Наблюдаемостьлоги с контекстом (без секретов), метрики, трейсы
Тестыпокрывают поведение и ошибки, нет хрупких моков, понятные названия
Дизайнграницы модулей, зависимости, простота
Читаемостьимена, размер методов, комментарии «почему»

Практики:

  • Небольшие PR (до ~400 строк), описание «что и зачем».
  • Автоматизируйте механику: форматирование, анализаторы, линтеры, тесты в CI — ревьюер думает о смысле.
  • Комментарии формулируйте как вопросы и предложения; различайте blocker и nit.
  • Ответ на ревью — в течение рабочего дня; договоритесь о SLA.
  • Хвалите хорошие решения.
  • Для крупных изменений — предварительное обсуждение дизайна, а не ревью в конце.

Нюансы и подводные камни

  • Ревью стиля вместо сути: настройте форматтер.
  • Одобрение «не глядя» из-за размера PR.
  • Личные предпочтения как требования.
  • Ревью как узкое место: распределяйте знания, ротация ревьюеров.

Практика

  1. Составьте командный чек-лист ревью и добавьте в шаблон PR.
  2. Проведите ревью чужого PR по чек-листу и разметьте blocker/nit.
  3. Настройте анализаторы и CI, чтобы убрать стилевые комментарии.

Вопросы с ответами

Связанные темы