type: standard
aspect: guidance
title: "IT ПРОЕКТЫ: ОСНОВЫ РАЗРАБОТКИ"
version: 1.0.0
date: 2026-02-19
status: active
Версия: 2.0.0
Дата: 2026-02-14
Статус: Мастер-индекс
Этот документ — фундамент для работы с любыми IT проектами.
Содержит:
- Ключевые понятия (что помнить всегда)
- Главные принципы (как работать)
- Навигация (где искать детали)
Детали в документах:
- PROJECT_INIT.md — Инициализация проекта (PATH A и PATH B)
- PROJECT_DEV.md — Ежедневная разработка (workflow)
- PROJECT_OPS.md — Операции (окружения, деплой, rollback)
ZERO VANILLA WORKING PRODUCTION
──────── ──────────── ─────────── ──────────
Установка Голый дистр Версии v0.x Релиз v1.0+
из коробки v0.0.0 с изменениями в проде
НЕ работает ОТКАТ точка git tags боевой
ZERO:
- Система установлена, НЕ настроена
- БД не подключена
- Как телефон после распаковки
VANILLA:
- ⚠️ КРИТИЧНО: Vanilla = ВСЕГДА чистая CMS
- Drupal/Laravel/WordPress из коробки
- БД подключена, система работает
- Базовые модули (locale, commerce)
- НЕТ кастомизации, НЕТ custom кода
- Точка отката при проблемах
WORKING:
- Версии с изменениями (v0.1.0, v0.2.0, ...)
- Каждая версия = git tag
- Есть custom код, модули, настройки
PRODUCTION:
- Релиз v1.0.0+
- Работает в проде
- Стабильная версия
PATH A: Создание с нуля
Zero → Vanilla (v0.0.0) → Working (v0.1.0+) → Production (v1.0.0+)
↑ ↑
Установка CMS Разработка
PATH B: Онбординг существующего
Получение → Онбординг (v1.0.0) → Working (v1.1.0+)
↑
НЕ vanilla! Это рабочий проект
PATH A:
- Нет готового решения
- Выбираем CMS сами
- Создаём Vanilla → разработка
PATH B:
- Есть готовое решение
- Переезд с другого сервера
- Получение → настройка → работа
- ⚠️ Результат ≠ vanilla (уже кастомизировано)
Детали: PROJECT_INIT.md
Формат: MAJOR.MINOR.PATCH (v1.2.3)
PATH A (новый проект):
v0.0.0 = Vanilla (чистый дистрибутив)
v0.1.0 = Первая фича
v0.x.x = Разработка (не в проде)
v1.0.0 = Релиз в production
v1.1.0 = Новая фича в проде
v1.1.1 = Баг-фикс
PATH B (онбординг):
Если есть версия → сохранить (v2.3.1 → v2.3.2)
Если нет версии → v1.0.0 (онбординг завершён)
Что менять:
- MAJOR (1.0.0 → 2.0.0): Breaking changes
- MINOR (1.0.0 → 1.1.0): Новая фича
- PATCH (1.0.0 → 1.0.1): Баг-фикс
ЗАПРЕЩЕНО:
- ❌ Править ядро (core) системы
- ❌ Чинить сломанное на месте
- ❌ Накручивать workarounds
ПРАВИЛЬНО:
- ✅ Откатиться к предыдущей рабочей версии
- ✅ Продолжить с чистого состояния
- ✅ Искать где именно поломка
Алгоритм:
1. ПЕРЕД изменением → backup (контрольная точка)
2. ДЕЛАТЬ изменение → одно за раз
3. ЕСЛИ сломалось → СТОП! Откат
4. НИКОГДА не менять ядро CMS
Детали: ROLLBACK_POLICY.md, PROJECT_OPS.md
ОБЯЗАТЕЛЬНО после каждой операции:
Формат DEVLOG:
## [v0.2.0] 2026-02-13 14:30
СДЕЛАНО:
• Установлен модуль dru_lider_catalog
• Включены базовые блоки
РАБОТАЕТ:
✓ /admin/modules — модуль active
✓ /admin/structure/block — блоки видны
ОТКАТ:
git checkout v0.1.0
Детали: PROJECT_OPS.md
ОДИН ШАГ = ОДНА ПРОВЕРКА
❌ НЕПРАВИЛЬНО:
1. Установить 5 модулей
2. Изменить конфиг
3. Деплой
4. Проверить всё сразу
✅ ПРАВИЛЬНО:
1. Установить модуль 1 → проверка → git commit
2. Установить модуль 2 → проверка → git commit
3. Изменить конфиг → проверка → git commit
4. Деплой → проверка → git commit
Если на шаге N сломалось:
- Откат к шагу N-1
- Изменить подход
- Повторить шаг N
Детали: PROJECT_OPS.md
Правило READ-MODIFY-WRITE для удалённых серверов:
❌ ОПАСНО:
vim /etc/nginx/sites-enabled/site.conf ← правим вслепую
service nginx restart ← может не запуститься
✅ БЕЗОПАСНО:
1. READ: cat /etc/nginx/.../site.conf > backup.conf
2. MODIFY: vim site.conf (локально)
3. TEST: nginx -t (проверка синтаксиса)
4. WRITE: загрузить на сервер
5. CHECK: nginx -t && service nginx reload
6. VERIFY: curl http://site.ru
Для БД:
1. READ: mysqldump db > backup.sql
2. MODIFY: создать миграцию
3. TEST: проверить на локальной копии БД
4. WRITE: применить миграцию на prod
5. CHECK: проверить результат
6. VERIFY: проверить работу сайта
Детали: PROJECT_OPS.md
PATH A: Создание с нуля
- Zero → Vanilla → Разработка
- Выбор CMS, установка, настройка
- Создание контрольных точек
PATH B: Онбординг существующего
- Получение проекта
- Настройка на нашем сервере
- Версионирование существующего
Эталонные данные:
- .credentials.md — пароли (НЕ в git)
- .project-config.md — параметры (в git)
- Принцип наследования через ${VAR}
Ежедневный workflow:
- Разработка локально
- Тестирование
- Code review
- Интеграция
(будет заполнено позже)
Окружения:
- DEV (разработка)
- STAGING (тестирование)
- PRODUCTION (боевой)
- PREVIEW (новая версия продукта)
Deployment:
- Режим полного цикла (DEV → STAGING → PROD)
- Режим быстрого цикла (DEV → PROD)
- LEGACY vs NEXT (параллельная разработка)
Backup и откат:
- Уровни backup (L1-L4)
- Алгоритм отката
- Хранение контрольных точек
Безопасность:
- Правило удалённых изменений (READ-MODIFY-WRITE)
- Git после проверки
- Откат немедленно при ошибке
| Действие | Команда |
|---|---|
| Создать контрольную точку | tar -czf vanilla-$(date +%Y%m%d).tar.gz project/ |
| Откатиться к Vanilla | tar -xzf vanilla-YYYYMMDD.tar.gz |
| Записать в DEVLOG | vim DEVLOG.md → добавить запись |
| Создать версию | git tag v0.1.0 && git push --tags |
| Проверка nginx | nginx -t |
| Backup БД | mysqldump db_name > backup-$(date +%Y%m%d).sql |
Vanilla:
Vanilla = Чистый дистрибутив CMS
= Точка отката при проблемах
= v0.0.0 (PATH A)
Rollback:
Сломалось → Откат к Working → НЕ чинить → Повторить по-другому
Git после проверки:
Изменение → Проверка → DEVLOG → Git commit → Git tag
Удалённые изменения:
READ (backup) → MODIFY (локально) → TEST → WRITE → CHECK → VERIFY
| Документ | Назначение |
|---|---|
| PROJECT_INIT.md | Инициализация проекта (PATH A, PATH B) |
| PROJECT_DEV.md | Ежедневная разработка |
| PROJECT_OPS.md | Операции (окружения, деплой, backup) |
| ROLLBACK_POLICY.md | Политика отката |
| DEPLOYMENT.md | Процесс деплоя |
| BACKUP.md | Политика бэкапов |
| CODE_DATA_SEPARATION.md | Разделение код/данные |
| SECURITY_CREDENTIALS.md | Безопасность credentials |
Этот документ — ФУНДАМЕНТ.
При начале работы с проектом:
1. Прочитать IT_PROJECTS.md (этот файл)
2. Загрузить нужный детальный документ (INIT/DEV/OPS)
3. Применить к конкретной задаче
Не загружай всё в контекст сразу. Загружай только то, что нужно СЕЙЧАС.
Версия: 2.0.0
История:
- v1.0.0-1.3.0: Монолитный PROJECT_WORKFLOW.md (1982 строки)
- v2.0.0: Разделение на 4 файла (мастер + 3 детальных)