МАТЕРИАЛЫ КУРСА
СИИ • НАВИГАЦИЯ

C4 архитектурные диаграммы - Интерактивный гайд

Интерактивные C4 диаграммы с автоматической генерацией для проектирования AI систем

~15 МИН ЧТЕНИЯ
ОБНОВЛЕНО НЕДАВНО

C4 архитектурные диаграммы: Интерактивный гайд

Что такое C4 Model?

C4 Model — это иерархический подход к визуализации архитектуры программного обеспечения через 4 уровня абстракции:

1️⃣ Context
Система в окружении пользователей и внешних систем
2️⃣ Container
Высокоуровневые компоненты и их технологии
3️⃣ Component
Внутренняя структура отдельных контейнеров
4️⃣ Code
Детали реализации (классы, функции)

Интерактивные C4 диаграммы

1️⃣ System Context — Общий обзор системы

Цель: Показать AI систему как единое целое в окружении пользователей и внешних систем. Отвечает на вопрос "Кто использует систему и с чем она интегрируется?"

Ключевые элементы Context диаграммы:

👥 Пользователи (Persons)
Business Analyst — основной пользователь системы
Data Scientist — настройка моделей
Manager — потребитель результатов
🔗 Внешние системы
OpenAI API — LLM для анализа
Document Storage — файловое хранилище
Email System — уведомления

Как использовать в своем проекте

1. Скопируйте код диаграммы

Каждая диаграмма выше — это готовый код, который можно адаптировать:

C4Context
  title Название вашей системы
  
  Person(user, 'Пользователь', 'Описание роли')
  System(system, 'Ваша система', 'Что она делает')
  System_Ext(external, 'Внешняя система', 'Интеграция')
  
  Rel(user, system, 'Взаимодействие')
  Rel(system, external, 'API вызовы', 'HTTPS')

2. Добавьте в MDX документ

<Mermaid
  chart="
    // Ваш код C4 диаграммы
  "
/>

3. Адаптируйте под свой проект

✅ Что изменить
• Названия системы и компонентов
• Технологии в описаниях
• Типы взаимодействий
• Внешние интеграции
🔄 Что оставить
• Общую структуру диаграммы
• Принципы разделения по уровням
• Паттерны для AI систем
• Архитектурные принципы

Синтаксис C4 диаграмм

Основные элементы:

Person()
Person(id, 'Name', 'Role')
System()
System(id, 'Name', 'Description')
Container()
Container(id, 'Name', 'Tech', 'Purpose')
Component()
Component(id, 'Name', 'Tech', 'Role')

Типы связей:

  • Rel(from, to, 'Description') — основная связь
  • Rel(from, to, 'Description', 'Technology') — с указанием протокола
  • System_Ext() — внешние системы
  • ContainerDb() — базы данных
  • Container_Boundary() — группировка элементов

ВСЕ МАТЕРИАЛЫ