Список требований к выполнению задачи на исправление и доработку продуктов платформы Flexberry
Чек-лист для CodeReview - замечательное средство, позволяющее проверить, что ревьюер не забыл удостовериться в отсутствии всех потенциальных проблем с исследуемым кодом.
Аспекты которые надо проверить
Код
- Работоспособность кода.
- Код работает и выполняет свои прямые обязанности, логика корректна, и т. д.
- У циклов есть установленная длина и корректные условия завершения.
- Понятность кода.
- Код прост для понимания.
- Названия методов не слишком длинные.
- Соответствие кода принятому стилю оформления.
- Правильно названы пространства имен / классы / методы / переменные.
- Соблюдены правила именования файлов в соответствии с классами.
- Соответствует пространство имен класса и физическое расположение файлов.
- В каждом файле, только один класс.
- Избыточность кода.
- Отсутствуют повторяющиеся части которые можно вынесть в отдельную функцию.
- Отсутствуют методы, которые можно в коде заменить на библиотечные функции.
- Отсутствует закомментированный код.
- Отсутствуют изменения части кода, предназначенные для отладки.
- Отсутствуют глобальные / статические переменные от которых можно избавиться или переместить их.
- Независимость кода.
- Код является независимым, насколько это возможно.
- Обновление конфигурации.
- При необходимости добавлены изменения в конфигурации.
- Есть описание изменений к релизу.
- Доработаны инструменты установки / развертывания (например, в NuGet-пакете).
- Корректная обработка исключений.
- Исключения используются по предназначению.
- Сохраняется информация о произошедшей ошибке (например, в лог)
- Нет пустых блоков catch.
- Представлены внятные пояснения к произошедшей ошибке.
- Сообщения локализованы.
- Предусмотрена безопасность.
- Все входные данные проверяются (на корректный тип, длину, формат, диапазон).
- Используются для проверки CodeContracts (.NET >= 4.0).
- Все выходные данные проверяются и при необходимости кодируются (например, от XSS).
- Все входные данные проверяются (на корректный тип, длину, формат, диапазон).
Source Control
- Корректные комментарии к коммиту (чекину TFS).
- Комментарий к коммиту (чекину TFS) отражает внесенные доработки.
- Система контроля версий используется по прямому назначению (например, не содержит напоминаний вида “не забыть обновить …”, “TODO”)?
- Соответствие комментариев принятым требованиям оформления.
- Комментарии соответствуют принятым требованиям к оформлению и правилам (русского) языка.
- Атомарность коммита.
- NB: обычно коммит не атомарен если в его описании присутствует союз “и”.
Документация
- Есть комментарии в коде.
- Комментарии раскрывают смысл кода.
- Все функции и их параметры прокомментированы.
- Соответствие комментариев принятым требованиям оформления.
- Комментарии соответствуют принятым требованиям к оформлению и правилам (русского) языка.
- Сделаны соответствующие пометки в WIKI.
- Какое-то необычное поведение или описание пограничных случаев задокументировано.
- Использование и функционирование сторонних библиотек документировано.
- Все структуры данных и единицы измерения описаны.
Тестирование
- Есть тесты для кода.
- Тесты есть и они достаточны.
- Юнит-тесты проверяют, что код предоставляет требуемую функциональность.
- Создан сценарий тестирования и специальная страница на соответствующем тестовом стенде.
- Сценарий тестирования добавлен в нужный план тестирования.
- Сценарий тестирования соответствует принятым требованиям.