Как понять, что функционал реализован при кодревью
Что проверяют
Проверяете ли вы на ревью, что задача действительно решена, или только расставляете замечания по стилю. Часто следом просят рассказать о случае, когда вы вернули пулреквест, хотя код выглядел аккуратно.
Как отвечать
Покажите порядок, в котором вы смотрите изменения, и опирайтесь на свои случаи:
- сверка с задачей: сначала тикет и критерии приёмки, потом код. Каждый критерий должен найти себе место в диффе, иначе это вопрос автору;
- тесты как доказательство: есть ли тест на каждый сценарий из задачи, включая граничные и ошибочные. Юнит-тесты на JUnit 5 с Mockito, интеграционные на Testcontainers, если затронуты база или брокер. Тест без осмысленных
assertничего не доказывает; - зелёный CI: сборка, тесты и статический анализ (SonarQube, SpotBugs, Checkstyle) проходят до того, как вы тратите время на чтение;
- контракты: не сломан ли REST-контракт или схема OpenAPI, есть ли миграция Flyway или Liquibase и совместима ли она со старой версией сервиса во время раскатки;
- то, чего тесты не видят: границы
@Transactional, обработка исключений, N+1 в JPA, логи без персональных данных; - запуск: сложную фичу стоит поднять локально или на стенде и пройти основной сценарий руками.
Итог хорошо сформулировать так: ревьюер отвечает за то, что изменение соответствует задаче и не ломает соседнее, а полное тестирование остаётся за автотестами и QA.
Нужны ваши примеры: сколько пулреквестов в неделю вы смотрите, что нашли в последний раз. Если ревьюить чужой код не доводилось, расскажите, как готовите свой PR, чтобы его было легко принять: описание, ссылка на задачу, тесты на каждый критерий.
Где спотыкаются
Сводят ревью к форматированию и именам переменных. Это работа линтера, от человека ждут проверки логики.
Верят зелёному CI безоговорочно. Тесты могли быть написаны под реализацию и проверять, что метод вызвался, а не что результат верный.
Отвечают абстрактно: «смотрю читаемость и качество». Без порядка действий и хотя бы одного реального случая это звучит как пересказ статьи.