Code review: чеклист для команды

Code review: чеклист для команды

Code review снижает риск багов в проде. Ниже — конкретный чеклист: что смотреть в PR и как описывать изменения.

Code review: чеклист для команды
Иллюстрация к материалу

Scope и задача

  • PR решает одну задачу из трекера, diff не раздувается
  • Нет «заодно отрефакторил полпроекта»
  • Описание PR: что, зачем, как проверить

Корректность и краевые случаи

  • Null/empty, pagination, idempotency для POST payments
  • Права доступа на уровне сервиса, не только UI
  • Транзакции для multi-step операций (wallet, orders)

Безопасность

  • Нет секретов в коде и логах
  • SQL injection / XSS / SSRF — типовые векторы закрыты
  • Rate limits на auth и публичные формы
Code review: чеклист для команды
Схема и рабочий процесс

AI-сгенерированный код

Код из Cursor/Copilot проверяется строже: галлюцинации API, лишние зависимости, отсутствие error handling.

Reviewer обязан прогнать сценарии руками, не только green CI.

Чеклист reviewer

  • Понимаю бизнес-логику изменения
  • Есть тест или manual test plan
  • Миграции обратимы или есть expand/contract
  • Observability: логи/метрики на новый путь

Шаблон описания PR

Каждый PR начинается с ссылки на задачу, краткого «что изменилось для пользователя/бизнеса» и шагов ручной проверки.

Если PR затрагивает auth, payments или wallet — reviewer обязан приложить скрин или лог успешного сценария и негативного (401, insufficient funds).

Метрики качества review

  • Median time to first review < 4 часов в рабочее время
  • Доля PR с тестами на критичных модулях > 80%
  • Количество production incidents, связанных с «пропущенным в review» — trending down

Культура review без токсичности

Review — про риск и ясность, не про «кто умнее». Фиксируйте blocking vs nit comments. В шаблоне PR укажите шаги ручной проверки — reviewer быстрее находит пропуски.

Review в распределённой команде

Если reviewer в другом часовом поясе — blocking comments с deadline, nit без блокировки merge. Async review работает, когда PR маленький и описание содержит screencast или шаги проверки.

Раз в две недели: 15 мин sync по открытым PR с высоким риском (auth, payments), без формального статус-митинга.

Как внедрить чеклист в команде

  • Добавьте шаблон PR в репозиторий (.github/pull_request_template.md)
  • Согласуйте blocking vs nit в review comments
  • Для payments/auth — обязательный manual test plan в PR
  • Раз в месяц: 3 случайных merged PR и retro по пропущенным рискам