Code review на бэкенде: чек-лист
↑ 9.1 Техлид на бэкенде · → Следующая
Зачем это на собесе
Ждут, что вы умеете проводить ревью системно, а не придираться к стилю.
Объяснение
Цели ревью: найти дефекты и риски, поделиться знанием, поддерживать единые практики. Не цель: показать превосходство.
Чек-лист бэкенд-ревью (от важного к менее важному):
| Область | Вопросы |
|---|---|
| Корректность | решает ли задачу? граничные случаи (null, пусто, дубли, часовые пояса)? |
| Безопасность | авторизация на каждом эндпоинте, проверка владельца (IDOR), валидация входа, секреты, инъекции, персональные данные в логах |
| Данные | миграции обратно совместимы, индексы под новые запросы, транзакционные границы, N+1, размеры выборок |
| Конкурентность | гонки, идемпотентность, повторы сообщений, блокировки |
| Надёжность | таймауты, ретраи, поведение при сбое зависимостей, CancellationToken |
| Async | нет .Result, async void; корректное await и освобождение ресурсов |
| Производительность | лишние аллокации в горячих путях, запросы в циклах, буферизация больших данных |
| API-контракт | ломающие изменения, коды ответов, версионирование, документация |
| Наблюдаемость | логи с контекстом (без секретов), метрики, трейсы |
| Тесты | покрывают поведение и ошибки, нет хрупких моков, понятные названия |
| Дизайн | границы модулей, зависимости, простота |
| Читаемость | имена, размер методов, комментарии «почему» |
Практики:
- Небольшие PR (до ~400 строк), описание «что и зачем».
- Автоматизируйте механику: форматирование, анализаторы, линтеры, тесты в CI — ревьюер думает о смысле.
- Комментарии формулируйте как вопросы и предложения; различайте blocker и nit.
- Ответ на ревью — в течение рабочего дня; договоритесь о SLA.
- Хвалите хорошие решения.
- Для крупных изменений — предварительное обсуждение дизайна, а не ревью в конце.
Нюансы и подводные камни
- Ревью стиля вместо сути: настройте форматтер.
- Одобрение «не глядя» из-за размера PR.
- Личные предпочтения как требования.
- Ревью как узкое место: распределяйте знания, ротация ревьюеров.
Практика
- Составьте командный чек-лист ревью и добавьте в шаблон PR.
- Проведите ревью чужого PR по чек-листу и разметьте blocker/nit.
- Настройте анализаторы и CI, чтобы убрать стилевые комментарии.
Вопросы с ответами
На что смотреть в первую очередь?
Корректность, безопасность, данные и конкурентность; стиль и мелочи — в последнюю очередь и автоматизированно.
Как писать критику?
Конкретно, по коду, с обоснованием и предложением; отделять блокирующие замечания от пожеланий.
Связанные темы
- [[be-8-5-7-tipovye-zadachi-layv-kodinga|Типовые задачи лайв-кодинга на C#]]
- Технический долг, рефакторинг, миграция легаси