Each package structure is sort of broken:
Layered package structure
controller
file1
file2
file3
…
repos
file1
file2
file3
…
services
file1
file2
file3
…
file1
file2
file3
…
repos
file1
file2
file3
…
services
file1
file2
file3
…
Good: Easy to understand
Bad: Things that belong together are spread all over the project. No true modules.
Bad: Things that belong together are spread all over the project. No true modules.
Module package structure
module1
FileController
FileRepo
FileService
module2
FileController
FileRepo
FileService
FileController
FileRepo
FileService
module2
FileController
FileRepo
FileService
Good: True modules
Bad: Layer-Info hard to distinguish, not so easy to understand
Bad: Layer-Info hard to distinguish, not so easy to understand
Mixed mode
module1
Controller
File1
…
Repo
File1
…
Service
File1
…
module2
Controller
File1
…
Repo
File1
…
Service
File1
…
Controller
File1
…
Repo
File1
…
Service
File1
…
module2
Controller
File1
…
Repo
File1
…
Service
File1
…
Good: True modules, Layers easy to spot.
Bad: Mixing of two concepts: Folders for modules, folders for layers. Developers have to travers large dir-structures.
Bad: Mixing of two concepts: Folders for modules, folders for layers. Developers have to travers large dir-structures.
———————
Main problem: You need folder structures to group modules, build modules, show layers. (one concept for different purposes)
Possible solution: Folders for group of modules. (may be nested) Folders with with Manifesto.xml - sorry Manifesto.yml to show module structure to IDE. And „markers“ for layers. (Which are maybe inspected automatically by the IDE.)
Main problem: You need folder structures to group modules, build modules, show layers. (one concept for different purposes)
Possible solution: Folders for group of modules. (may be nested) Folders with with Manifesto.xml - sorry Manifesto.yml to show module structure to IDE. And „markers“ for layers. (Which are maybe inspected automatically by the IDE.)
What is your favourite? Do you have suggestions?
Keine Kommentare:
Kommentar veröffentlichen