Skip to content

Зачем это нужно ​

Шаблон закрывает повторяющуюся техническую базу проекта: CI/CD, Dockerfile, зависимости, lint, build, структуру каталогов и базовую документацию.

Это снимает рутину на старте. Команде не нужно каждый раз заново собирать одинаковый технический каркас.

Проблема после старта ​

Создать проект легко. Поддерживать 10-20 проектов сложнее.

Сначала проекты похожи. Потом они начинают расходиться:

  • В одном проекте обновили CI, в другом забыли.
  • В одном проекте Dockerfile остался из шаблона, в другом его локально поправили.
  • В одном проекте зависимости уже свежие, в другом остались старые версии.
  • В одном проекте изменения шаблона перенесли руками, в другом потеряли.

Без процесса обновления шаблон перестаёт быть общей основой. Он остаётся только способом быстро создать первый коммит.

Что ломается без стратегии ​

Когда шаблон нельзя нормально обновлять:

  • проекты начинают жить своей жизнью;
  • граница между шаблоном и приложением теряется;
  • обновления превращаются в ручное копирование;
  • конфликты решаются прямо в рабочих ветках;
  • становится непонятно, какой проект на какой версии шаблона;
  • Git-история перестаёт быть источником правды.

Это особенно больно, когда приложений много. Для одного проекта ручной перенос ещё можно пережить. Для набора проектов нужен единый маршрут обновления.

Цель стратегии ​

Стратегия не пытается убрать конфликты полностью. Она делает так, чтобы конфликты возникали в предсказуемом месте, проходили review и не ломали чистую ветку шаблона.

Главная формулировка:

Шаблон должен обновляться так же контролируемо, как обычная фича: через ветку, проверку и PR/MR.