📐 C4 Model + PlantUML = Architecture as Code
Мастер-класс по созданию архитектурных диаграмм C4 с PlantUML — от Context до Component с живыми примерами
📐 C4 Model + PlantUML: Architecture as Code
Превратить хаос архитектурных идей в четкие, поддерживаемые диаграммы. С PlantUML ваша архитектура живет в коде — версионируется, ревьюится и развивается вместе с проектом.
🏗️ Четыре уровня C4 Model
Диаграммы создаются кодом, легко версионировать и поддерживать
Изменения видны в Git, можно делать code review диаграмм
Интегрируется с CI/CD, автогенерация в документацию
Установка и настройка
1. Установка PlantUML
# Через Homebrew (macOS)
brew install plantuml
# Через apt (Ubuntu/Debian)
sudo apt install plantuml
# Или скачать JAR файл
wget https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar
2. C4-PlantUML библиотека
Для работы с C4 Model нужно подключить специальную библиотеку:
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
@enduml
3. Генерация диаграмм
# Генерация PNG
java -jar plantuml.jar -tpng diagram.puml
# Генерация SVG (рекомендуется)
java -jar plantuml.jar -tsvg diagram.puml
# Автообновление при изменениях
java -jar plantuml.jar -gui
🎮 Интерактивный код-плейграунд
Каждый пример ниже — это готовый PlantUML код. Копируйте, вставляйте в онлайн-редактор PlantUML и экспериментируйте!
Онлайн PlantUML редакторы
🏢 Уровень 1: Context Diagram
Context диаграмма показывает систему как черный ящик в окружении пользователей и внешних систем.
AI Document Analysis System
Уровень 2: Container Diagram
Container диаграмма показывает высокоуровневые технические компоненты системы и их взаимодействие.
Уровень 3: Component Diagram
Component диаграмма детализирует внутреннюю структуру отдельного контейнера.
Document Processor
Парсинг PDF, DOCX, TXT
LLM Client
Интеграция с OpenAI API
Prompt Manager
Управление промптами
Result Analyzer
Обработка ответов LLM
Cache Manager
Кэширование результатов
Monitoring Client
Отправка метрик в Langfuse
Практические советы
Лучшие практики
- • Используйте бизнес-термины, а не технические
- • Краткие, но понятные названия
- • Единый стиль naming convention
- • Один файл = одна диаграмма
- • Логическая группировка компонентов
- • Не более 9 элементов на диаграмме
- • Context: только ключевые системы
- • Container: технологические границы
- • Component: логические модули
Частые ошибки
- • Показ всех возможных интеграций
- • Технические детали в Context
- • Более 10 элементов на диаграмме
- • Диаграммы не обновляются с кодом
- • Нет версионирования
- • Отсутствие автоматизации
- • Классы в Container диаграмме
- • Контейнеры в Component диаграмме
- • Смешивание уровней абстракции
Интеграция в проект
1. Структура файлов
docs/
├── architecture/
│ ├── context.puml # Context диаграмма
│ ├── containers.puml # Container диаграмма
│ ├── ai-service.puml # Components AI Service
│ ├── api-gateway.puml # Components API Gateway
│ └── README.md # Описание архитектуры
├── generated/ # Сгенерированные изображения
│ ├── context.svg
│ ├── containers.svg
│ └── ...
└── scripts/
└── generate-diagrams.sh # Скрипт генерации
2. Автоматизация генерации
3. Интеграция в документацию
Для автоматической вставки диаграмм в Markdown документацию:
## Архитектура системы
### Context диаграмма

### Container диаграмма

### AI Service Components

✅ Чеклист готовности к продакшену
Production Readiness Checklist
📋 Диаграммы готовы:
🔄 Автоматизация настроена:
Теперь у вас есть все инструменты для создания живой архитектурной документации. PlantUML + C4 = диаграммы, которые растут и развиваются вместе с вашим кодом!