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

Процедуры контроля и автоматизация

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

1. Runtime-валидация границ системы

  • ✅ Присутствует валидация для:
    • API responses
    • WebSocket messages
    • Web Storage (localStorage/sessionStorage)
    • Query параметры / URL
    • PostMessage events
    • Данные из форм

2. Отсутствие запрещенных практик

  • ❌ Нет any
  • ❌ Нет необоснованных type cast (as)
  • ❌ Нет unknown без последующего type narrowing

3. Разделение типов

  • ✅ DTO и UI модели разделены (если типы описываются вручную)
  • ✅ Нет UI-логики в DTO (isLoading, error, viewState)

4. Соответствие выбранному подходу

  • ✅ GraphQL: типы генерируются из схемы
  • ✅ OpenAPI: generated типы не коммитятся, генерация настроена
  • ✅ Runtime-схемы: схемы актуальны и применяются на границах
  • ✅ Ручные DTO: структура отражает API, подход согласован с Tech Lead

5. Strict mode

  • ✅ TypeScript работает в strict mode
  • tsconfig.json содержит "strict": true

6. Структура

  • ✅ Выбранный подход типизации соблюдается
  • ✅ Generated types не коммитятся (если используется генерация)
  • ✅ Структура DTO отражает структуру API

Чеклист для автора PR

  • Strict mode включен
  • Runtime-валидация на всех границах доверия
  • Нет использования any
  • unknown всегда с type narrowing (guard/assert/schema)
  • Type cast (as) только с обоснованием или отсутствует
  • DTO и UI типы разделены
  • Generated типы не коммитятся (если используется генерация)
  • Структура DTO отражает структуру API
  • Подход типизации согласован с командой