Инженерные принципы
Быстрый переход к обучению
Что нужно знать
- DRY, KISS, YAGNI как баланс, а не догма.
- SOLID в frontend-контексте.
- Композиция против наследования.
- Code smells и технический долг.
- ADR как способ фиксировать инженерные решения.
Что уметь объяснить на собеседовании
- Когда нарушение DRY оправдано.
- Почему абстракция может быть преждевременной.
- Как принимать решение между быстрым фиксом и рефакторингом.
- Как измерять, что принцип реально улучшил проект.
Грейд-фокус
- Junior: понимать принципы и распознавать антипримеры.
- Middle: применять принципы на рефакторинге модулей.
- Senior: задавать инженерные стандарты и quality gates команды.
Глубокие кейсы собеседования
- Повторяемость кода в 3 местах: не всегда нужно мгновенно абстрагировать, если сценарии еще нестабильны.
- Переусложненный utility-layer: попытка сделать универсально приводит к нечитабельному API.
- Legacy-модуль с высокой связностью: нужен поэтапный refactor plan, а не большой переписанный PR.
Практический минимум
- Выбрать один smell в проекте и предложить 2 пути исправления.
- Написать мини-ADR для выбранного пути.
- Обосновать, как проверить эффект изменения.
Типовые ловушки
- Паттерн ради паттерна.
- Абстракция без стабильного доменного контекста.
- Отсутствие rollback-плана при рефакторинге.
Self-review перед собеседованием
- Я могу показать пример, где простое решение лучше сложного.
- Я могу назвать компромисс любого предложенного принципа.
- Я умею описать критерий успеха рефакторинга.