Типи прикладних областей
Типи прикладних областей відрізняються за своїм бізнес-призначенням. Так, одні області є визначальними, інші ж є суто залежними. Побудова ієрархії та взаємозвʼязків між прикладними областями є основою надійної роботи кожного сервісу.
Перелік типів
Тип | Рівень | Опис |
---|---|---|
Агрегат | 1 | Область, центрального значення, який обʼєднує групу інших прикладних областей. |
Порт | 1 | Область, центрального значення, яка описує звʼязок між двома агрегатами, та яка може обʼєднувати групу інших прикладних областей. |
Специфікація | 2 | Прикладна область допоміжного значення агрегата або порту, яка передбачає деталізацію окремого аспекту прикладної області. |
Словник | 2 | Прикладна область допоміжного значення, яка описує перелік унікальних значень, які можуть бути відібрані за рахунок унікального ключа або за рахунок збірного унікального ключа. |
Журнал | 2 | Прикладна область допоміжного значення, яка фіксує зміни в агрегаті або порту. |
Міст | 2 | Прикладна область допоміжного значення, яка описує звʼязок між двома прикладними областями в рамках одного агрегата чи порту. |
Фабрика | 2 | Прикладна область допоміжного значення, яка оркеструє стратегії, при потребі їх оркестрації. |
Стратегія | 2 - 3 | Прикладна область допоміжного значення, яка описує одну реалізацію рішення, при умові, що таких реалізацій є декілька. |
Агрегат
Агрегат - це центральний елемент архітектури системи, який об'єднує групу взаємозалежних компонентів або об'єктів. Він є основною сутністю, необхідною для правильного функціонування системи.
У складі агрегату можуть бути включені дані, логіка та функціональність, необхідні для виконання бізнес-правил або операцій сервісу. Основна роль агрегату полягає в управлінні та координації взаємодії інших елементів системи через порти або шляхом побудови бізнес-логіки з дочірніх прикладних областей - словників, специфікацій, фабрик тощо. Структура та функціональні можливості абстрактного агрегату м ожуть варіюватися в залежності від конкретного контексту і потреб системи.
До прикладу в застосунку "Логістичні системи" агрегатами будуть:
- Агрегат "Користувачі" - це набір даних, що містить інформацію про користувачів системи, їх права доступу, ролі та інші важливі атрибути.
- Агрегат "Транспортні вузли" - цей агрегат включає в себе дані про різні транспортні вузли, можливо, з їх характеристиками і функціоналом, необхідним для логістичних операцій.
- Агрегат "Транспорт" - об'єднує інформацію про транспортні засоби, такі як словники з моделями, тарифи на обслуговування та інші відомості.
Порт
Порт виступає як інтерфейс, який забезпечує зв'язок або координацію взаємодії між різними агрегатами. Він визначає правила та способи, за допомогою яких інші елементи можуть отримати доступ до функціональності або інформації, що надається агрегатом.
Порт може містити методи, події або інші механізми взаємодії, які дозволяють обмінюватися даними або управляти станом порту. Він забезпечує абстракцію та ізоляцію деталей реалізації між агрегатами від інших елементів системи, сприяючи збереженню модульності та розширюваності архітектури.
До прикладу в застосунку "Логістичні системи" портами будуть:
- Порт "Користувачі - Транспортні вузли" - описує взаємодію між користувачами та транспортними вузлами.
- Порт "Користувачі - Транспорт" - описує звʼязок між користувача та транспортом, такі як власність транспорту у користувача, відстеження транспорт у тощо.
- Порт "Транспорт - Транспортні вузли" - описує звʼязок між транспортними вузлами та транспортом, такі як потреби в транспорті, маршрути тощо.
Специфікація
Специфікація є додатковою прикладною областю, що деталізує аспекти або атрибути конкретного агрегату або порту. Вона представляє собою конкретний набір даних або функцій, які доповнюють або розширюють основні характеристики агрегата.
Специфікація не може існувати незалежно від агрегата або порту, оскільки вона пов'язана з його функціональністю або властивостями. Вона використовується для деталізації або конкретизації певних аспектів бізнес-правил або функціоналу сервісу, що має важливе значення для користувачів або інших компонентів сервісу.
До прикладу в застосунку "Логістичні системи" специфікаціями будуть:
- В агрегаті "Користувачі":
- Специфікація "Персональні документи" - перелік документів користувача, яких у нього може бути декілька.
- Специфікація "Адреси реєстрації" - перелік адрес користувача, які включають як історичні так і актуальні адреси.
- В порті "Транспорт - Логістичні центри":
- Специфікація "Графік роботи" - перелік днів з робочими годинами відвантаження та завантаження товару відносно кожного логістичного центру.
Фабрика
Фабрики є прикладними областями, які виступають як абстракція між різними областями додатка, допомагаючи вибрати конкретну стратегію використання та описати абстрактну бізнес-логіку, яка відповідає кожній з цих стратегій.
Фабрики дозволяють виокремити процес створення об'єктів від їхньої конкретної реалізації, що спрощує розвиток додатка та забезпечує більшу гнучкість при зміні вимог. Крім того, фабрики допомагають забезпечити однорідність у створенні об'єктів різних типів, що сприяє збереженню чистоти архітектури додатка та полегшує його подальше супроводження та розширення
До прикладу в застосунку "Логістичні системи" фабриками будуть:
- В агрегаті "Користувачі":
- Фабрика "Авторизація" - надає однорідність використання авторизацій завдяки різним стратегіями, такими як Google Auth Strategy, логін та пароль тощо, а також описує функціонал абстрактний для усіх стратегій - підтвердження пошти реєстрації, вихід з профіля тощо.
Стратегія
Стратегія визначає конкретний метод або підхід до створення функціональності врахуванням поточного контексту. Кожна стратегія реалізовує абстрактний публічний інтерфейс та приховує кінцеву специфіку реалізації конкретної стратегії.
До прикладу в застосунку "Логістичні системи" специфікац іями будуть:
- В агрегаті "Користувачі":
- В фабриці "Авторизація":
- Стратегія "Логін Пароль" - описує реєстрацію користувача з урахуванням специфіки логіна та паролю.
- Стратегія "Facebook" - описує реєстрацію користувача з специфікою підключення через
Facebook
з урахуванням конфігураційних даних, токенів тощо. - Стратегія "Google" - описує реєстрацію користувача з специфікою підключення через
Google
з урахуванням конфігураційних даних, токенів тощо.
- В фабриці "Авторизація":
- В агрегаті "Транспорт":
- За дискримінатором "Тип тарифу здійснення перевезення конкретної країни":
- Стратегія "Тарифікація в Україні" - описує деталі тарифікації в Україні, необхідні види оплати тощо.
- Стратегія "Тарифікація в Словакії" - описує деталі тарифікації в Україні, необхідні види оплати, типи документів тощо.
- Стратегія "Тарифікація в Польші" - описує деталі тарифікації в Україні, необхідні види оплати, типи документів тощо.
- За дискримінатором "Тип тарифу здійснення перевезення конкретної країни":
Міст
Міст є додатковою прикладною областю, спрямованою на створення зв'язків "багато-багато" між різними компонентами агрегату чи порту, або між самим агрегатом чи портом та його компонентою. Мости дозволяють ізолювати логіку взаємодії між різними прикладними областями в межах одного агрегату чи порту.
Якщо порт слугує зʼєднувачем двох агрегатів, то міст слугує зʼєднанням ряду прикладних областей всередині одного агрегату чи порту.
До прикладу в застосунку "Логістичні системи" мостами будуть:
- В агрегаті "Користувачі":
- Міст "Користувачі - Ролі" - надає можливість набуття користувачами групи ролей.
Словник
Словник - це допоміжна прикладна область, яка містить систематизовану колекцію елементів. Кожен елемент має унікальний ідентифікатор запису, а також унікальне або загальне унікальне значення. Це дозволяє здійснювати пошук записів у словнику за їхніми унікальними ідентифікаторами або значеннями.
Словники мають важливу роль в описі прикладних областей, оскільки перелічення сутностей трапляється достатньо часто. Словниками можуть бути: перелік країн, виробників машин, причин відмов тощо.
До прикладу в застосунку "Логістичні системи" словниками будуть:
- В агрегаті "Користувачі"
- Словник "Перелік персональних документів" - перелік персональних документів, які можуть підтвердити особу.
- Словник "Тип профілю користувача" - перелік можливих типів профілей.
- Словник "Тип підписки користувача" - перелік можливих підписок профіля користувача -
наприклад
Basic
,Pro
,Advanced
тощо. - В специфікації "Ролі":
- Словник "Права доступу" - описують перелік дій та екранів, право на використання яких може бути прикріплено до відповідної ролі.
- В мості "Логістичні центри - Користувачі":
- Словник "Тип уніформи" - перелік можливих типів уніформ користувачів.
- В Агрегаті "Транспорт":
- Словник "Моделі транспорту" - перелік моделей транспорту.
- В Порті "Транспортний центр - Транспорт":
- В специфікації "Графік роботи":
- Словник "Тип календаря" - перелік днів тижня.
- В специфікації "Графік роботи":
Журнал
Журнал це допоміжна прикладна область, яка призначена фіксувати зміни в агрегаті, порті, в рамках агрегату чи в рамках порту. В сукупності зі статусними моделями, журнали нада ють можливість прослідкувати хронологію подій чи змін для конкретної одиниці.
До прикладу в застосунку "Логістичні системи" журналами будуть:
- В агрегаті "Користувачі":
- Журнал "Зміни в профілях користувачів" - фіксація змін профілів, відповідальних за блокування та розблокування записів з урахуванням причини блокування чи розблокування тощо.
- В агрегаті "Транспорт":
- Журнал "Зміни в транспорті" - фіксація оновлення інформації про існуючі транспорти, проходження технічного обслуговування тощо.
- В агрегаті "Транспорті вузли":
- Журнал "Зміни в транспортних вузлах" - фіксація змін в записах конкретного логістичного центру.
Ми рекомендуємо агрегати, які мають статусні моделі або які містять чутливу інформацію, яка може піддаватись змінам покривати журналами, це суттєво спростить розбір помилкових змін в прикладній області в подальшому.