Найменування областей
Прикладна область має бути унікальною, але через велику кількість таких областей у промисловому програмному забезпеченні існує ризик зіткнення імен. Щоб уникнути цього, 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
- вхідна точка веб-сервера.
Відокремлюючи одні структури від інших унеможливлює створення колізій, оскільки навіть прикладні області з однаковими іменами будуть розділятись за аліасами.