- Компонент [Component] -
Тут сейчас вообще программистское пойдет. Я немного перефразировала определение с сайта с целью упрощения.
🔵это набор блоков кода, объединенных общей функциональностью, внутри контейнера
🔵не являются самостоятельными единицами развертывания, функционируют только как часть контейнера, отдельно - не могут
Вот тут Саймон Браун приводит примеры компонентов для разных языков программирования. И еще пример, как выделить компоненты из готового кода.
Я по жизни сталкиваюсь только с объектно-ориентированными ЯП, но обычно мне нужны познания для простых скриптов автоматизации... Поэтому то, что компонент в таких ЯП - это набор классов и интерфейсов, как написано на сайте модели - звучит для меня понятно, но процентов на 80.
Мне проще об этом думать на примере кодовой базы сервисов, что я видела. Например, если они были устроены по принципу слоистой архитектуры, то там были API-контроллеры, часть с бизнес-логикой и часть для обращения к БД. Вот это были бы, грубо говоря, 3 компонента в терминах модели C4.
Если у вас есть готовый код, Саймон Браун предлагает выделить компоненты так:
1️⃣ Посмотреть весь перечень блоков кода
2️⃣ Исключить те, что не имеют влияния на архитектуру вашего контейнера
3️⃣ Из оставшихся блоков сформировать компоненты (в своем примере он объединяет их по выполняемой функции - те самые контроллеры API, компонент бизнес-логики и компоненты обращения к БД)
Во многом, конечно, зависит от конкретной кодовой базы. Поэтому, в чуть большей степени чем с контейнерами, не уверена, что легко будет аналитику обойтись без программиста.
- Код [Code] -
Ну тут вроде просто :D
🔵это реальные блоки кода, из которых состоит компонент - классы, интерфейсы, функции, etc
Фуф, про абстракции всё. Завтра будет про общую идею диаграмм и диаграмму контекста :)