thombergs/buckpal

Organizing Code

colinger opened this issue · 2 comments

it seems that the codes are organized by Layer, not the "Expressive Package Structure".

Hi @colinger,

the "Expressive Package Structure" from my book actually organizes by layer first and by architectural element second. This repository uses the same package structure I propose in my book, only that this package structure is split across multiple Gradle modules to enforce the dependencies between the packages (see chapter "Enforcing Architecture Boundaries").

Does that make sense? Let me know if you're still unclear about anything.

“Another very appealing advantage of this package structure is that it directly maps to DDD concepts. The high-level package, account, in our case, is a bounded context which has dedicated entry and exit points (the ports) to communicate with other bounded contexts. Within the domain package, we can build any domain model we want, using all the tools DDD provides us.”
get-your-hands-dirty-on-clean-architecture_pdf__page_27_of_108_
the "account" is a bounded context. we can add another bounded context to the same level if we need. I am confusing, how to do in this repository. Shall I put all of them into the package application/domain ?