Структура библиотеки рабочей области Nx для приложения Angular/Nest.js
Я настраиваю новое рабочее пространство Nx для приложения Angular с бэкэндом Nest.js. Для внешнего интерфейса будет не одно приложение, а несколько вариантов, например, с разным стилем для каждого клиента и немного разными функциями.
Обычный подход к структурированию рабочей области заключается в том, что внутренние (API) и внешние (клиентские) папки находятся на верхнем уровне, а внутри находятся такие функции, как:
└── root
├── apps
│ ├── api (nestjs)
│ └── client (angular)
└── libs
├── api
│ ├── core
│ │ └── src
│ ├── feature-1
│ │ └── src
│ └── feature-2
│ └── src
├── client
│ ├── shell
│ │ └── src
│ ├── feature-1
│ │ └── src
│ └── feature-2
│ └── src
└── shared
└── src
По сути, мы разделяем backend и frontend код.
Будет ли это также иметь смысл, или есть веские причины не группировать бэкенд и интерфейс для каждой функции? Например:
└── root
├── apps
│ ├── api
│ └── client
└── libs
├── feature-1
│ ├── api
│ │ └── core
│ │ └── src
│ ├── client
│ │ └── ui
│ │ └── src
│ └── shared
│ └── util
│ └── src
├── feature-2
│ ├── api
│ │ └── core
│ │ └── src
│ ├── client
│ │ └── ui
│ │ └── src
│ └── shared
│ └── util
│ └── src
└── shared
└── src
Вероятно, в конце концов, на самом деле не имеет значения, сохраняю ли я библиотеки для каждой функции на бэкэнде и внешнем интерфейсе согласованными, но почему-то мне кажется лучше иметь все для одной функции под одной крышей.
Тем не менее, также будут библиотеки для клиента или API, не являющиеся частью какой-либо функции, так что все еще есть
client
и
api
папка под
libs
.
Спасибо за любые мысли по этому поводу и подсказки для лучших практик.