Чек-лист по проверке ошибок в коде

Чек-лист по проверке ошибок в коде, image #1

10 главных вопросов

  • Работает ли код? Выполняет ли он свои прямые обязанности, корректна ли логика?
  • Легко ли понять код?
  • Соответствует ли код твоему стилю? Обычно это относится к расположению скобок, названиям переменных и функций, длинам строк, отступам, форматированию и комментариям.
  • Есть ли в ревью избыточный или повторяющийся код?
  • Независим ли код, насколько это возможно?
  • Можно ли избавиться от глобальных переменных или переместить их?
  • Есть ли закомментированный код?
  • У циклов есть установленная длина и корректные условия завершения?
  • Можно ли заменить часть кода библиотечными функциями?
  • Можно ли удалить часть кода, предназначенного для логгирования или отладки?

Безопасность

  • Все ли входные данные проверяются (на корректный тип, длину, формат, диапазон) и кодируются?
  • Обрабатываются ли ошибки при использовании сторонних утилит?
  • Проверяются и кодируются ли выходные данные?
  • Обрабатываются ли неверные значения параметров?

Документация

  • Есть ли комментарии? Раскрывают ли они смысл кода?
  • Все ли функции прокомментированы?
  • Есть ли какое-то необычное поведение или описание пограничных случаев?
  • Задокументировано ли использование и функционирование сторонних библиотек?
  • Описаны ли все структуры данных и единицы измерения?
  • Есть ли незавершенный код? Если да, должен ли он быть удален или помечен маркером типа «TODO»?

Тестирование

  • Можно ли протестировать код? Например, он не должен содержать слишком много зависимостей или скрывать их, тестовые фреймворки должны иметь возможность использовать методы кода.
  • Есть ли тесты? Достаточны ли они? Например, они покрывают код в нужной мере.
  • Проверяют ли на самом деле юнит-тесты то, что код предоставляет требуемую функциональность?
  • Все ли массивы проверяются на «выход за границы»?
  • Может ли любой тестирующий код быть заменен с использованием существующего API?
372 views·3 shares