Инструкция будет полезна всем, кто проводит ревью кода
Здесь пошагово разбираем, на что нужно обратить внимание в коде перед тем, как апрувить его с командой.
10 главных вопросов
- Работает ли код? Выполняет ли он свои прямые обязанности, корректна ли логика?
- Легко ли понять код?
- Соответствует ли код твоему стилю? Обычно это относится к расположению скобок, названиям переменных и функций, длинам строк, отступам, форматированию и комментариям.
- Есть ли в ревью избыточный или повторяющийся код?
- Независим ли код, насколько это возможно?
- Можно ли избавиться от глобальных переменных или переместить их?
- Есть ли закомментированный код?
- У циклов есть установленная длина и корректные условия завершения?
- Можно ли заменить часть кода библиотечными функциями?
- Можно ли удалить часть кода, предназначенного для логгирования или отладки?
Безопасность
- Все ли входные данные проверяются (на корректный тип, длину, формат, диапазон) и кодируются?
- Обрабатываются ли ошибки при использовании сторонних утилит?
- Проверяются и кодируются ли выходные данные?
- Обрабатываются ли неверные значения параметров?
Документация
- Есть ли комментарии? Раскрывают ли они смысл кода?
- Все ли функции прокомментированы?
- Есть ли какое-то необычное поведение или описание пограничных случаев?
Задокументировано ли использование и функционирование сторонних библиотек?
- Описаны ли все структуры данных и единицы измерения?
- Есть ли незавершённый код? Если да, должен ли он быть удалён или помечен маркером типа TODO?
Тестирование
- Можно ли протестировать код? Например, он не должен содержать слишком много зависимостей или скрывать их, тестовые фреймворки должны иметь возможность использовать методы кода.
- Есть ли тесты? Достаточны ли они? Например, они покрывают код в нужной мере.
- Проверяют ли на самом деле юнит-тесты то, что код предоставляет требуемую функциональность?
- Все ли массивы проверяются на «выход за границы»?
- Может ли любой тестирующий код быть заменён с использованием существующего API?



