Проверяет понимание принципов модульной архитектуры фронтенда и способов контроля зависимостей между модулями для поддержания масштабируемости кода.
Модульность фронтенда — это не просто разбиение кода на папки, а система правил, которая определяет, кто и что может импортировать. Без контроля зависимостей проект быстро превращается в «спагетти», где изменение одного модуля ломает пять других.
ESLint с плагинами no-restricted-imports, import/no-cycle и правилами Feature-Sliced Design позволяет описать архитектурные границы декларативно. dependency-cruiser строит граф зависимостей и валидирует его по правилам. TypeScript paths и barrel-файлы задают публичные точки входа модуля.
// .eslintrc.js
rules: {
'no-restricted-imports': ['error', {
patterns: [{
group: ['@/features/*/*'],
message: 'Импортируйте только через публичный API модуля'
}]
}],
'import/no-cycle': 'error'
}
// dependency-cruiser config
forbidden: [{
name: 'no-upward-imports',
from: { path: '^src/shared' },
to: { path: '^src/features' }
}]В проекте заводят папку shared с утилитами и UI-китом, entities с бизнес-сущностями, features с пользовательскими сценариями. Каждый модуль экспортирует только то, что нужно снаружи, через index.ts. CI-пайплайн запускает линтер и dependency-cruiser, блокируя merge при нарушении границ.
Итог: контроль модульности через архитектурные правила и автоматические проверки в CI позволяет команде безопасно развивать проект, не превращая его в монолит из связанных файлов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию