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