✏️
HLAD | HLD и что вообще рисовать! ✏️Меня тут
упрекнули, что я призываю нарисовать HLD, а люди не понимают, как.
Попробую объяснить по пунктам.
✏️ Что это вообще такое
HLAD (High-Level Architecture Diagram) — одна картинка, которая показывает домены, сущности и процессы верхнего уровня.
HLD (High-Level Design) — документ, куда помимо HLAD входят детали: контракты, протоколы, SLA, схемы, безопасность и прочее.
То есть HLAD — это часть HLD, визуальный срез.
✏️ Что в HLAD должно быть
1–3 домена/контекста (рамки или облака).
3–7 ключевых сущностей/агрегатов (прямоугольники внутри рамок) на домен.
2–5 операторов/процессов (стрелки с подписями-глаголами: «Активировать», «Согласовать») на домен.
0–2 саги (шестигранники, располагаются на границах доменов, только если процесс сквозной; в остальных случаях внутри домена).
1–3 техконтекста (отдельные прямоугольники снаружи: Auth, DWH, Payment GW и т.п.).
✏️ Что в HLAD не должно быть
— CRUD-операций, value object’ов и мелких вспомогательных сущностей.
— Протоколов, форматов, топиков, БД, SLA/SLO, ролей.
— Доменных событий (
за исключением тех без которых хэппипас не поедет) и ярлыков.
— Отражения нехэппипаса.
✏️ Как расположить (раздел, если стало скучно и хочется красоты)
Слева направо: стартовая сущность → стрелка-оператор → целевая сущность.
Если переход в другой контекст — ставим на границе сагу (шестигранник).
Техконтексты — только снаружи, отдельными прямоугольниками.
✏️ Именование
Сущности — существительные из домена.
Операторы — глаголы в инфинитиве: «Квалифицировать», «Активировать».
Саги — «Сага: <название процесса>».
✏️ Чек-лист проверки
— Все стрелки подписаны глаголами.
— Саги только на границах или внутри доменов.
— Техконтексты вынесены наружу.
— Схема читается слева направо как «happy-path».
— Нет CRUD, протоколов и БД.
В общем, HLAD — это не вся архитектура, а только «смысловая карта» системы.
#ddd #architecture