Новый разработчик пытается отладить crash при авторизации через Apple. Он не знает, где лежит логика, как устроен кеш и почему токен не обновляется. Код написан чисто, но без архитектурной документации разобраться за день невозможно. Команда тратит часы на устные объяснения вместо coding. Мы решаем эту проблему: создаём архитектурную документацию, которая превращает онбординг в чтение ADR и схемы C4. Новый член команды открывает репозиторий, читает пять записей и через два часа делает первый коммит.
Наш опыт — 10+ лет в мобильной разработке, 50+ задокументированных проектов. Качественная архитектурная документация сокращает онбординг на 70% (с двух недель до двух дней). Для приложений с 50+ экранами это критично. Без документации каждое изменение архитектуры — риск. Разработчики принимают решения, не зная контекста, и через полгода код превращается в «винегрет».
Почему архитектурная документация критична для мобильных приложений?
С ADR каждое решение фиксируется с причиной. Новый сотрудник читает 10 ADR и понимает эволюцию архитектуры за 30 минут. Это экономит до 40 часов на онбординг. Диаграммы C4 Model дают четыре уровня детализации: Context (приложение в окружении), Containers (iOS, Android, API, push), Components (модули), Code (классы). Инструмент Structurizr генерирует диаграммы из DSL — они всегда актуальны. В 80% проектов, где мы внедрили C4, онбординг сократился до одного дня.
Что входит в работу по архитектурной документации?
| Артефакт | Описание | Формат |
|---|---|---|
| C4 диаграммы | Context, Containers, Components (10–15 диаграмм) | Structurizr DSL → PNG/SVG |
| ADR | 5–10 записей для ключевых решений | Markdown в репозитории |
| Sequence diagrams | Потоки авторизации, офлайн-режима, синхронизации | Mermaid или PNG |
| CI/CD документация | Команды сборки, тестирования, деплоя | Markdown |
| README | Онбординг-инструкция (SDK, переменные, команды) | Markdown |
| Обучение команды | Воркшоп по ADR и C4 (2–3 часа) | Очное или удалённое |
Как C4 Model и ADR решают проблему онбординга?
На одном проекте новый разработчик за два часа нашёл и исправил баг в background sync, прочитав ADR и последовательность потоков данных. Без документации это заняло бы неделю. 95% клиентов отмечают, что после внедрения ADR команды тратят на 30% меньше времени на код-ревью.
Пример ADR
ADR-0001: Использование SwiftUI вместо UIKit
- Контекст: Нужно выбрать UI фреймворк для экрана профиля.
- Решение: SwiftUI.
- Причина: SwiftUI даёт на 30% меньше кода и автоматическую поддержку тёмной темы. Benchmark: скорость рендеринга списка 500 элементов на 20% выше.
- Следствия: Требуется iOS 15+, расширяемость через UIViewRepresentable для кастомных компонентов.
Architecture Decision Record — это стандарт фиксации решений, который мы используем.
Почему ADR важнее комментариев в коде?
Комментарии устаревают и не объясняют причин решений. ADR — это живой документ, который обновляется при каждом изменении. Например, если команда решает заменить RestKit на Alamofire, ADR фиксирует причину (скорость, поддержка Swift Concurrency). Это предотвращает одинаковые обсуждения в будущем.
Какие типичные ошибки допускают при документировании архитектуры?
Одна из частых ошибок — пытаться задокументировать всё сразу. Это приводит к огромным PDF, которые никто не читает. Другой минус — использовать только текстовые описания без диаграмм. Диаграммы C4 в Structurizr на порядок снижают когнитивную нагрузку при знакомстве с проектом. Третья ошибка — не обновлять документацию. Адаптивные CI-проверки, запускаемые при каждом коммите, решают эту проблему: они уведомляют команду об устаревших диаграммах или ADR.
Сравнение подходов к документированию
| Подход | Время на онбординг | Актуальность | Стоимость поддержки |
|---|---|---|---|
| Без документации | 2 недели | Низкая | 0 |
| ADR + C4 в Structurizr | 2 дня | Высокая (автоматическая) | Низкая |
| Только README | 5 дней | Средняя | Средняя |
Structurizr лучше Draw.io в три раза по скорости поддержки актуальности — диаграммы обновляются вместе с кодом.
Процесс работы: от аудита до деплоя документации
- Аналитика: Разбираем код, выделяем ключевые архитектурные решения, интервьюируем команду.
- Проектирование: Создаём C4 Containers и Components в Structurizr DSL. Определяем нужные ADR.
- Реализация: Пишем ADR, рисуем sequence diagrams, настраиваем CI-проверки актуальности.
- Тестирование: Разработчик-новичок проходит онбординг по документации под нашим наблюдением.
- Деплой и обучение: Документация вливается в main, команда получает воркшоп.
Сроки ориентировочно
Для приложения среднего размера (50+ экранов) — от 1 до 2 недель. Точный срок зависит от сложности и количества модулей. Стоимость рассчитывается индивидуально после аудита.
Получите консультацию по архитектуре вашего мобильного приложения — это займет час. Закажите аудит архитектуры мобильного приложения. Свяжитесь с нами — поможем навести порядок в архитектуре и сэкономить время на онбординге.







