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