Right not libraries are grouped by platform with the base not having a sub directory.
libs
- core
- scss
- features
- users
- nativescript
- core
- scss
- features
- users
- web
- core
- scss
- features
- users
This places the features/users in 3 distant locations which while on a command line isn't a problem but when looking at the tree in an IDE it feels a bit disconnected.
The Request
It would be my preference to have it grouped by feature which would look something more like this.
libs
- core
- base
- nativescript
- web
- scss
- base
- nativescript
- web
- features
- users
- base
- nativescript
- web
Additional context
As an aside, I believe group this way would better balance the opinions of xplat's structure with other patterns like DDD. For example DDD with xplat might look something like this.
libs
- booking
- domain
- api
- base
- nativescript
- web
- feature-manage
- base
- nativescript
- web
- boarding
- domain
- feature-cancel
- base
- nativescript
- web
- feature-search
- base
- nativescript
- web
- shared
- domain
- core
- base
- nativescript
- web
- ui
- common
- base
- nativescript
- web
- scss
- base
- nativescript
- web
- utils
This pattern feels a lot more familiar with me personally as I come from other library frameworks. I suspect others will feel the same.
It would be super cool if other schematics like DDD could enhanced via Higher Order Functions to simply split each library they generate by platform.
domain modules are platform agnostic so they would not be split.
It would be my expectation that many of the items currently in core of xplat (like services, environments, etc.) would be moved to shared/domain with them being exposed to applications via shared/core/<platform>
User Story
As a full stack developer, I want to have a single folder for a given feature, because the specific feature is more important to me than the platform that feature is for.
The problem
Right not libraries are grouped by platform with the base not having a sub directory.
This places the
features/users
in 3 distant locations which while on a command line isn't a problem but when looking at the tree in an IDE it feels a bit disconnected.The Request
It would be my preference to have it grouped by feature which would look something more like this.
Additional context
As an aside, I believe group this way would better balance the opinions of xplat's structure with other patterns like DDD. For example DDD with xplat might look something like this.
This pattern feels a lot more familiar with me personally as I come from other library frameworks. I suspect others will feel the same. It would be super cool if other schematics like DDD could enhanced via Higher Order Functions to simply split each library they generate by platform.
domain
modules are platform agnostic so they would not be split. It would be my expectation that many of the items currently incore
of xplat (like services, environments, etc.) would be moved toshared/domain
with them being exposed to applications viashared/core/<platform>
User Story
As a full stack developer, I want to have a single folder for a given feature, because the specific feature is more important to me than the platform that feature is for.