В больших командах каждый PR проверяется хотя бы одним другим разработчиком. В Sage Ideas я единственный инженер. Никто не ревьюит мой код.
Это проблема. Не потому что я пишу плохой код — а потому что я слеп к собственным предположениям. Как и любой разработчик.
Я разработал процесс саморевью, который вылавливает большую часть того, что заметил бы второй человек. Он не идеален, но значительно лучше, чем «выглядит хорошо, мержим».
Правило 24 часов
Я никогда не ревьюю код, написанный сегодня. Минимальный промежуток между написанием и ревью — 24 часа. В идеале — 48.
Это звучит медленно. На самом деле это быстро. За эти 24 часа я занимаюсь чем-то другим. Когда я возвращаюсь к ревью, я частично забываю свою реализацию. В этом забывании и суть — оно позволяет мне читать код так, будто его написал кто-то другой.
Чеклист ревью
Я ревьюю в 4 прохода. Каждый проход ищет разное:
Проход 1: Читаю как пользователь (5 минут)
Не смотрю на код. Открываю diff PR и читаю только имена файлов и количество строк.
Вопросы:
- Имеет ли смысл изменение только по именам файлов?
- Не затрагивает ли оно слишком много файлов? (признак связанного изменения)
- Есть ли файлы, которых здесь быть не должно?
Проход 2: Читаю на логику (15 минут)
Теперь читаю код. Но не проверяю стиль, именование или форматирование. Только логику.
Вопросы:
- Работает ли счастливый путь?
- Что происходит с null/undefined входными данными?
- Есть ли случаи, когда это молча завершается ошибкой?
- Обрабатываю ли я случай ошибки, или просто логирую и иду дальше?
- Есть ли состояние гонки? (Особенно в асинхронном коде)
