Перейти до основного вмісту

Найменування областей

інформація

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

Відокремлюючи одні структури від інших унеможливлює створення колізій, оскільки навіть прикладні області з однаковими іменами будуть розділятись за аліасами.