Список требований к выполнению задачи на исправление и доработку продуктов платформы Flexberry

Чек-лист для CodeReview - замечательное средство, позволяющее проверить, что ревьюер не забыл удостовериться в отсутствии всех потенциальных проблем с исследуемым кодом.

Аспекты которые надо проверить

Код

  • Работоспособность кода.
    • Код работает и выполняет свои прямые обязанности, логика корректна, и т. д.
    • У циклов есть установленная длина и корректные условия завершения.
  • Понятность кода.
    • Код прост для понимания.
    • Названия методов не слишком длинные.
  • Соответствие кода принятому стилю оформления.
    • Правильно названы пространства имен / классы / методы / переменные.
    • Соблюдены правила именования файлов в соответствии с классами.
    • Соответствует пространство имен класса и физическое расположение файлов.
    • В каждом файле, только один класс.
  • Избыточность кода.
    • Отсутствуют повторяющиеся части которые можно вынесть в отдельную функцию.
    • Отсутствуют методы которые можно в коде заменить на библиотечные функции.
    • Отсутствует закомментированный код.
    • Отсутствуют изменения части кода, предназначенные для отладки.
    • Отсутствуют глобальные / статические переменные от которых можно избавиться или переместить их.
  • Независимость кода.
    • Код является независимым, насколько это возможно.
  • Обновление конфигурации.
    • При необходимости добавлены изменения в конфигурации.
    • Есть описание изменений к релизу.
    • Доработаны инструменты установки / развертывания (например, в NuGet-пакете).
  • Корректная обработка исключений.
    • Исключения используются по предназначению.
    • Сохраняется информация о произошедшей ошибке (например, в лог)
      • Нет пустых блоков catch.
    • Представлены внятные пояснения к произошедшей ошибке.
      • Сообщения локализованы.
  • Предусмотрена безопасность.
    • Все входные данные проверяются (на корректный тип, длину, формат, диапазон).
      • Используются для проверки CodeContracts (.NET >= 4.0).
    • Все выходные данные проверяются и при необходимости кодируются (например, от XSS).

Source Control

  • Корректные комментарии к коммиту (чекину TFS).
    • Комментарий к коммиту (чекину TFS) отражает внесенные доработки.
    • Система контроля версий используется по прямому назначению (например, не содержит напоминаний вида “не забыть обновить …”, “TODO”)?
  • Соответствие комментариев принятым требованиям оформления.
    • Комментарии соответствуют принятым требованиям к оформлению и правилам (русского) языка.
  • Атомарность коммита.
    • NB: обычно коммит не атомарен если в его описании присутствует союз “и”.

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

  • Есть комментарии в коде.
    • Комментарии раскрывают смысл кода.
    • Все функции и их параметры прокомментированы.
  • Соответствие комментариев принятым требованиям оформления.
    • Комментарии соответствуют принятым требованиям к оформлению и правилам (русского) языка.
  • Сделаны соответствующие пометки в WIKI.
    • Какое-то необычное поведение или описание пограничных случаев задокументировано.
    • Использование и функционирование сторонних библиотек документировано.
    • Все структуры данных и единицы измерения описаны.

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

  • Есть тесты для кода.
    • Тесты есть и они достаточны.
    • Юнит-тесты проверяют, что код предоставляет требуемую функциональность.
    • Создан сценарий тестирования и специальная страница на соответствующем тестовом стенде.
      • Сценарий тестирования добавлен в нужный план тестирования.
      • Сценарий тестирования соответствует принятым требованиям.