English

Чек-лист CodeReview

Опубликовано: 2015-02-13 17:21:40

Общее

Работает ли код? Выполняет ли он свои прямые обязанности, корректна ли логика, и т. д.

Легок ли код для понимания?

Соответствует ли код вашему стилю написания кода? Обычно это относится к расположению скобок, названиям переменных и функций, длинам строк, отступам, форматированию и комментариям.

Есть ли в ревью избыточный или повторяющийся код?

Является ли код независимым, насколько это возможно?

Можно ли избавиться от глобальных переменных или переместить их?

Есть ли закомментированный код?

У циклов есть установленная длина и корректные условия завершения?

Может ли что-то в коде быть заменено библиотечными функциями?

Может ли быть удалена часть кода, предназначенного для логгирования или отладки?

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

Все ли входные данные проверяются (на корректный тип, длину, формат, диапазон) и кодируются?

Обрабатываются ли ошибки при использовании сторонних утилит?

Выходные данные проверяются и кодируются (прим. пер.: например, от XSS)?

Обрабатываются ли неверные значения параметров?

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

Есть ли комментарии? Раскрывают ли они смысл кода?

Все ли функции прокомментированы?

Есть ли какое-то необычное поведение или описание пограничных случаев?

Использование и функционирование сторонних библиотек документировано?

Все ли структуры данных и единицы измерения описаны?

Есть ли незавершенный код? Если есть, должен ли он быть удален или помечен маркером типа «TODO»?

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

Является ли код тестируемым? Например, он не должен содержать слишком много зависимостей или скрывать их, тестовые фреймворки должны иметь возможность использовать методы кода, и т. д.

Есть ли тесты и если есть, то достаточны ли они? Например, они покрывают код в нужной мере.

Юнит-тесты на самом деле проверяют, что код предоставляет требуемую функциональность?

Все ли массивы проверяются на «выход за границы»?

Может ли любой тестирующий код быть заменен с использованием существующего API?

Источник: хабр

Прошлые записи

  1. Подарок из Грузии
  2. Уборка придомовой территории
  3. Терпеть нельзя, действовать
  4. Курс Upgrade руководителя от Rubius Academy
  5. Мечты об идеальном Томске. Общественный транспорт и проблема пробок
  6. Arch Linux вместо Linux Mint
  7. Highload 2017 vs Codefest 2018
  8. Детализация по звонкам Теле2, совершенным более полугода назад
  9. Побыть туристом в своем городе
  10. Космология, Байкал, Математика, Минимализм
  11. Уроки математики - Youtube-канал