-
-
Notifications
You must be signed in to change notification settings - Fork 632
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP][POC] Refactor to tighten DDD setup and implement Hexagonal Architecture #1730
Conversation
…ecture In order to make it easier to contribute to the project we need to make sure that we make it as easy as possible. One of the ways to do this is to ensure that we have an architecture that is well-understood and supported by modern insights. At current the DDD movement is gaining traction and with recent developments has the hexagonal architecture style (or ports and adapters) become a main- stream part of our community. The advantage of adopting these is that they are pre-existing ideas and we can stand on the shoulders of giants, like others.
I think we should move stash out of the domain model either. The DocumentationRepository depends on Stash now. But the middleware for caching is in the infrastructure layer. |
ConfigureCache command should be moved to the application layer, since it is using the configuration Factory. Same applies to the MergeConfigurationWithCommandLineOptions |
RenderPass is still using flysystem directly. Shouldn't this be extracted to the infrastructure layer? |
Yes, the repository should be abstracted to an interface and the concrete class moved to Infrastructure or Application |
Dsn in the domain model feels more like a Application class for me. Or even infrastructure. Since it is all filesystem logic in there. Since it is only used in classes that we already marked as Application classes. It should be moved. |
… to infrastructure
Well, RenderPass itself is a Domain Concept (though I am not really happy with this construct; we should revise it) but the Flysystem stuff should be abstracted away |
Done :) |
I am going to do the revision of this part in a separate PR together with the Renderers; the RenderPass passes objects that should be abstracted away but I need a little headspace to shape that in the right architecture |
I am going to address this issue together with the Renderpass; it seems we can drop it |
…o refactor-to-hexagonal-and-tighten-ddd-domain
…-tighten-ddd-domain [WIP][POC] Refactor to tighten DDD setup and implement Hexagonal Architecture
In order to make it easier to contribute to the project we need to make sure
that we make it as easy as possible. One of the ways to do this is to ensure
that we have an architecture that is well-understood and supported by
modern insights.
At current the DDD movement is gaining traction and with recent developments
has the hexagonal architecture style (or ports and adapters) become a main-
stream part of our community.
The advantage of adopting these is that they are pre-existing ideas and we
can stand on the shoulders of giants, like others.
This Pull Request is a PoC that we can use to discuss these concepts on; this may or may not be promoted to a full functionality set. I expect too many breakages in other PRs for this to happen but you never know :)
Tasks: