# Конфигурация как база данных
---
Проблемы
- Разрозненная структура
- Сложно мержить
- Сложно работать с большими документами
---
## Конфигурация - это база данных
---
База данных
- Одинаковая структура
- Ожидаемая и предсказуемая
---
## Цель - договориться о структуре
---
Договориться, то есть
- направление развития
- постепенные изменения
- поддержку инструментов
**Не про взять и все переделать в один заход**
---
База данных
- Состоит из коллекций документов
- Каждый документ имеет идентификатор
---
У документа должен быть идентификатор
- Буквы
- Цифры
- Знаки "-" и "_"
---
Название коллекции - те же требования, что и к идентификатору
- Буквы
- Цифры
- Знаки "-" и "_"
---
Коллекция может быть
- одним файлом
```
items.xml
```
---
Коллекция может быть
- директорией с файлами
```
items/
1.xml
2.xml
3.xml
```
---
Коллекции могут быть в разных форматах
- XML
- JSON
---
Соглашения затронут
- новые конфиги в обязательном порядке
- старые очень аккуратно, понимая все риски
---
Соглашения затронут
- Создание, редактирование (GD Tool)
- Сборку (скрипты сборки)
---
Реакторинг старых конфигов
- Поддержка в GD Tool
- Поддержка в сборщике
- Рефакторинг конфига
Какое-то время старая и новая версия структуры конфига живут параллельно
---
### Вопросы
{"metaMigratedAt":"2023-06-16T13:44:46.604Z","metaMigratedFrom":"YAML","title":"Конфигурация как база данных","breaks":false,"contributors":"[{\"id\":\"4e26b559-162b-4f85-ad1a-424e3bb43fb6\",\"add\":1621,\"del\":251}]"}