Перейти к основному содержимому

Процедуры контроля

Обеспечение качества кода и консистентности среды через процессы ревью и автоматизированные проверки.


Code Review зависимостей

MUST

Ревьюер обязан убедиться, что:

  • Обоснована целесообразность добавления зависимости
  • Дубликаты отсутствуют среди существующих зависимостей
  • Пакет стабильно поддерживается
  • Лицензия совместима с проектом
  • Влияние на размер бандла оценено (> 100 KB – требует согласования с Tech Lead)
  • Аналог в проекте отсутствует

SHOULD

Допустимые причины добавления зависимости:

  • Новый функционал
  • Необходимость инфраструктурного/архитектурного решения
  • Улучшение производительности или безопасности
  • Работа с датами, временем, таймзонами

FORBIDDEN

  • Зависимость добавлена без технического обоснования
  • Дубликаты существующих инструментов
  • Использование крупных библиотек без обсуждения

Контроль консистентности среды

MUST

Ревьюер обязан проверить в PR:

  • Зафиксированы версии Node.js и package manager
  • Lock-файл присутствует и соответствует изменениям зависимостей
  • Все CI-команды выполняются через package.json scripts
  • Нет обходов проверок через .env.local или отключение линтеров/хуков

Контроль безопасности зависимостей

MUST

Обязательные проверки:

  • Использование npm audit / pnpm audit
  • Snyk CLI или аналогичные инструменты

Интеграция в CI/CD:

Аудит зависимостей должен выполняться:

  • При каждом добавлении или обновлении зависимостей (PR)
  • Не реже одного раза в неделю (scheduled run)

SHOULD

Примеры реализации:

ПлатформаИнструменты
GitHub• GitHub Actions step
• Dependabot (автоматические PR на обновление уязвимых зависимостей)
Bitbucket• Отдельный audit step в Bitbucket Pipelines
• Scheduled pipeline (еженедельный)

Эскалация решений

SHOULD

В спорных случаях решение принимает:

  • Tech Lead
  • Команда (коллективное обсуждение)

Примечания

MAY

  • Предложенные конфигурации являются стандартизированной точкой входа
  • Если проект имеет специфику, допускается корректировка правил по согласованию с Tech Lead или PM
  • Работа со стандартами не должна занимать значительную часть времени разработки

Чек-лист для ревьюера

  • Node версия зафиксирована (mise/.tool-versions/engines.node) и совпадает с CI
  • package.json.packageManager задан и используется в CI
  • CI выполняет команды только через scripts из package.json
  • Все env-переменные задокументированы в .env.example и README
  • Feature Flags – отдельный централизованный механизм, не .env.*
  • Нет Infrastructure Configuration Branches в features/entities/widgets/pages
  • Нет клиентских env-переменных в .env.production/.env.staging
  • Docker (если используется) повторяет CI окружение
  • Lock-файлы присутствуют в репозитории
  • Нет локальных shell-скриптов, не добавленных в репозиторий