Чек-лист для код-ревью
Александр Бобряков, техлид группы Java-разработкиАрхитектура кода:
- Согласован ли подход с архитектором, лидом команды?
- Соответствует ли решение принятым в команде ADR?
- Есть ли поддержка обратной совместимости на случай изменений?
- Нужно ли актуализировать документацию сервиса?
- Нужна ли возможность отключения функциональности через механизм feature-toggle?
Простота обслуживания кода:
- Не базируется ли код на устаревшей технологии или фреймворке? Возможно, в новых версиях улучшен API и можно выбрать способ реализации попроще.
- Легко ли тестировать и отлаживать готовый код? Хватает ли этих тестов для воспроизведения всех позитивных и негативных сценариев приложения?
- Можно ли изменить значения данных в короткие сроки? Не стоит ли вынести переменные в соответствующие конфигурационные файлы по разным стендам?
- Не слишком ли усложнен код? Можно ли упростить какие-то участки?
- Есть ли аналогичные участки кода в проекте? Скорее всего, их стоит объединить, чтобы не дублировать.
Информационная безопасность:
- Проводится ли валидация данных в коде?
- Не выводится ли секретная информация в стандартные выходы?
- Не используются ли в коде технологии с известными проблемами в безопасности?
Соответствует ли реализация исходным условиям задачи?
- Реализовал ли я все, что требовалось в задаче?
- Остались ли открытые вопросы/todo/fixme? На них стоит завести отдельные задачи.
- Можно ли оптимизировать текущую реализацию? Не забудьте проверить структуры данных, алгоритмы, критичные секции кода.