xplat
xplat copied to clipboard
[Feature Request] Group Libraries by Feature
The problem
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.
nice to have!
as a full-stack, this makes much more sense for me too