--- url: /template-sync-strategy/concepts/why.md description: >- Почему шаблону нужен процесс обновления, а не только быстрый старт нового проекта. --- # Зачем это нужно Шаблон закрывает повторяющуюся техническую базу проекта: CI/CD, Dockerfile, зависимости, lint, build, структуру каталогов и базовую документацию. Это снимает рутину на старте. Команде не нужно каждый раз заново собирать одинаковый технический каркас. ## Проблема после старта Создать проект легко. Поддерживать 10-20 проектов сложнее. Сначала проекты похожи. Потом они начинают расходиться: * В одном проекте обновили CI, в другом забыли. * В одном проекте Dockerfile остался из шаблона, в другом его локально поправили. * В одном проекте зависимости уже свежие, в другом остались старые версии. * В одном проекте изменения шаблона перенесли руками, в другом потеряли. Без процесса обновления шаблон перестаёт быть общей основой. Он остаётся только способом быстро создать первый коммит. ## Что ломается без стратегии Когда шаблон нельзя нормально обновлять: * проекты начинают жить своей жизнью; * граница между шаблоном и приложением теряется; * обновления превращаются в ручное копирование; * конфликты решаются прямо в рабочих ветках; * становится непонятно, какой проект на какой версии шаблона; * Git-история перестаёт быть источником правды. Это особенно больно, когда приложений много. Для одного проекта ручной перенос ещё можно пережить. Для набора проектов нужен единый маршрут обновления. ## Цель стратегии Стратегия не пытается убрать конфликты полностью. Она делает так, чтобы конфликты возникали в предсказуемом месте, проходили review и не ломали чистую ветку шаблона. Главная формулировка: > Шаблон должен обновляться так же контролируемо, как обычная фича: через ветку, проверку и PR/MR.