Версия: 1.0.0
Дата: 2025-11-19
Вопрос: Как система эволюционирует во времени?
Ответ:
- Версионирование
- Жизненный цикл
- История изменений
- Миграции
НЕ описывает:
- Где хранятся версии (структурное)
- Что меняется (функциональное)
- Как мигрировать (процессное)
Формат: MAJOR.MINOR.PATCH
1.0.0 → 1.1.0 → 1.1.1 → 2.0.0
Правила:
- MAJOR — несовместимые изменения API
- MINOR — новая функциональность (обратно совместимая)
- PATCH — исправления багов
Документы:
# В YAML файле
version: "1.0.0"
updated: "2025-11-19"
Код:
git tag v1.0.0
git push --tags
Платформа:
platform/ # Platform v1
platform-v2/ # Platform v2
API:
/api/v1/products # API v1
/api/v2/products # API v2
planning →
development →
testing →
staging →
production →
archived
planning: 7-14 дней
- Сбор требований
- Проектирование
- Написание спецификации
development: 30-60 дней
- Реализация функционала
- Итеративная разработка
- Code reviews
testing: 7-14 дней
- Unit тесты
- Integration тесты
- Исправление багов
staging: 3-7 дней
- UAT (User Acceptance Testing)
- Нагрузочное тестирование
- Финальные правки
production: бесконечно
- Работа в продакшене
- Мониторинг
- Поддержка
archived: бесконечно
- Хранение истории
- Доступ для справки
- Нет активной разработки
Draft → Review → Active → Deprecated → Archived
Draft → Review:
- Документ написан
- Готов к ревью
Review → Active:
- Ревью пройдено
- Одобрено к использованию
Active → Deprecated:
- Появилась новая версия
- Старая ещё поддерживается
Deprecated → Archived:
- Поддержка прекращена
- Только для истории
Commits:
git log --oneline
# abc123 feat: add export to Excel
# def456 fix: correct date formatting
# ghi789 docs: update README
Branching:
main
├── feature/new-function
├── bugfix/date-issue
└── release/v1.1.0
Tags:
git tag
# v1.0.0
# v1.1.0
# v2.0.0
Формат:
# Changelog
## [1.1.0] - 2025-11-19
### Added
- Export to Excel функция
### Fixed
- Форматирование дат
## [1.0.0] - 2025-10-15
### Added
- Начальный релиз
10 стадий:
1. Инвентаризация (что есть)
2. Анализ (что менять)
3. Планирование (как менять)
4. Подготовка (создание структуры)
5. Staging (тестирование)
6. Валидация (проверка)
7. Миграция (переключение)
8. Верификация (проверка работы)
9. Архивирование (сохранение старого)
10. Финализация (очистка)
После каждой стадии:
git add .
git commit -m "checkpoint: migration stage 5 completed"
Rollback при проблемах:
git reset --hard <checkpoint_hash>
Идея: Старая версия продолжает работать параллельно с новой
Platform v1 и v2:
platform/ # v1 продолжает работать
platform-v2/ # v2 разрабатывается
projects/ # Проекты на v1
projects-v2/ # Новые проекты на v2 (будущее)
API:
/api/v1/ # Старый API
/api/v2/ # Новый API
Оба доступны одновременно.
Этапы:
1. Announce — объявить устаревание
2. Deprecate — пометить как deprecated
3. Support Period — поддержка N месяцев
4. Remove — удалить/архивировать
Пример:
2025-11: Announce "API v1 deprecated"
2025-12 - 2026-06: Support period (6 месяцев)
2026-07: Remove API v1
archive/
├── 2025-11-09-marketplace-old/
├── old-projector/
└── ARCHITECTURE_v2_DRAFT.md
Папки:
archive/{YYYY-MM-DD}-{name}/
Файлы:
{name}_archived_{YYYY-MM-DD}.md
# archive/metadata.yaml
archives:
- name: "marketplace-old"
date: "2025-11-09"
reason: "Полностью переписан на v2"
original: "projects/marketplace/"
Восстановить файл:
git checkout <commit_hash> -- path/to/file
Восстановить весь проект:
git checkout <commit_hash>
# или
git checkout <tag_name> # v1.0.0
Распаковать:
cd archive/
tar -xzf marketplace-v1.tar.gz
version: "1.0.0"
updated: "2025-11-19" # ← дата последнего обновления
created: "2025-10-15" # Дата создания
deprecated: "2026-01-01" # Дата устаревания
archived: "2026-07-01" # Дата архивирования
ISO 8601:
YYYY-MM-DD
2025-11-19
С временем (опц):
YYYY-MM-DDTHH:MM:SS
2025-11-19T15:30:00
Следующее: 8-spatial.md — распределение по серверам
Назад: 6-information.md — информационное измерение