Найменування областей
Прикладна область має бути унікальною, але через велику кількість таких областей у промисловому програмному забезпеченні існує ризик зіткнення імен. Щоб уникнути цього, X-Fiber вводить поняття просторового аліасу для прикладних областей.
Просторовий аліас
X-Fiber пропонує створення двох типів аліасів:
1. Аліас прив'язки до сервісу / системи / загальних - залежно від використання прикладної області у різних сервісах, можуть
бути використані аліаси. Наприклад, якщо розглядається прикладна область "Словник країн", яка використовується в різних
сервісах, доцільно створити аліас з прив'язкою до "Загальних". Також, прикладні області, що використовуються у групі
сервісів, об'єднаних у систему, наприклад, у системі управління підприємством (ERP), повинні мати аліас системи та бути
описані поряд з сервісами. Аліас даного типу X-Fiber рекомендується додавати як "префікс".
2. Аліас привʼязки до типу прикладної області - впровадження аліасів типу прикладної області значно полегшує розуміння
призначення кожної області на протязі життя та розвитку веб-застосунку. Аліас даного типу X-Fiber пропонує додавати як "постфікс".
X-Fiber пропонує наступні назви аліасів типів прикладних областей:
| Тип прикладної області | Аліас |
|---|---|
| Агрегат | Agg |
| Порт | Port |
| Специфікація | Spec |
| Фабрика | Fac |
| Стратегія | Strat |
| Міст | Brid |
| Словник | Dict |
| Журнал | Log |
Загальна маска побудови прикладної області матиме наступний вигляд:
const domain = `{system-alias}{domain-name}{domain-type-alias}`
Наприклад опишемо ряд прикладних областей:
type Domains =
| 'CommonCountryDict'
| 'LogUsersAgg'
| 'LogUsersRolesSpec'
| 'LogUsersRolesBrid'
| 'LogUsersRolesPermissionsDict'
| 'LogUsersAuthFac'
| 'LogUsersAuthPasswordStrat'
| 'LogUsersAuthFacebookStrat'
| 'LogUsersAuthGoogleStrat'
| 'LogUsersLog'
де:
- Аліаси призначення:
Common- прикладні області, які можуть бути використані в будь-якому сервісі.Log- обʼєднання сервісу "Транспортні системи".
- Склад прикладних областей:
CommonCountryDict- словник "Країни".LogUsersAgg- агрегат "Користувачі".LogUsersRolesSpec- специфікація "Ролі".LogUsersRolesPermissionsDictсловник "Права доступу".LogUsersRolesBrid- міст "Користувачі - Ролі".LogUsersAuthFac- фабрика "Авторизація".LogUsersAuthPasswordStrat- стратегія "Авторизація через пароль".LogUsersAuthFacebookStrat- стратегія "Авторизація черезFacebook".LogUsersAuthGoogleStrat- стратегія "Авторизація черезGoogle".LogUsersLog- журнал змін в агрегаті "Користувачі".
Файлова структура ряду прикладних областей:
services
├── Common
│ ├── domains
│ │ ├── CommonCountryDict
├── LogisticSystem
│ ├── domains
│ │ ├── LogUsersAgg
│ │ │ ├── LogUsersRolesSpec
│ │ │ │ ├── LogUsersRolesPermissionsDict
│ │ │ ├── LogUsersRolesBrid
│ │ │ ├── LogUsersAuthFac
│ │ │ │ ├── LogUsersAuthPasswordStrat
│ │ │ │ ├── LogUsersAuthFacebookStrat
│ │ │ │ ├── LogUsersAuthGoogleStrat
│ │ │ ├── LogUsersLog
│ │ │ ├── log.users.agg.ep.ts
│ ├── logistic-system.service.ts
├── server.ts
├── ...
де:
Common- директорія з переліком загальної інформації, яка може бути використана в будь-якому сервісі.domains- директорія з переліком прикладних областей.CommonCountryDict- опис словника "Країни".
LogisticSystem- директорія з переліком інформації, яка стосується сервісу "Логістичні системи".domains- директорія з переліком прикладних областей.LogUsersAgg- директорія з переліком областей стосуються агрегату користувачі, а також описом самої області "Користувачі".LogUsersRolesSpec- директорія з описом специфікації "Ролі" та складових цієї прикладної області.LogUsersRolesPermissionsDict- директорія з описом словника "Права доступу", яка входить в специфікацію "Ролі".
LogUsersRolesBrid- директорія з описом мосту "Користувача - Ролі".LogUsersAuthFac- директорія з описом фабрики "Авторизація" та складових цієї прикладної області.LogUsersAuthPasswordStrat- директорія з описом стратегії "Пароль та логін".LogUsersAuthFacebookStrat- директорія з описом стратегії "Facebook авторизації".LogUsersAuthGoogleStrat- директорія з описом стратегії "Google авторизації".
LogUsersLog- директорія з описом журналу змін агрегату "Користувачі".log.users.agg.ep.ts- вхідна точка агрегату "Користувачі".
logistic-system.service.ts- вхідна точка сервісу "Логістичні системи".
server.ts- вхідна точка веб-сервера.
Відокремлюючи одні структури від інших унеможливлює створення колізій, оскільки навіть прикладні області з однаковими іменами будуть розділятись за аліасами.