November 2017
Intermediate to advanced
670 pages
17h 35m
English
We can use a layered domain driven architecture as a tool for structuring our large-scale functional programs in a modular and composable manner. This architecture helps us visualize the separate application concerns and enables us to write Go code whose source code dependencies only point inwards.
All references, that is, import statements must point inwards. An import domain statement can be found in all other packages. Import use cases can be found in the interfaces and infrastructure packages. Import interfaces can be found in the infrastructure package and no package (except the import_test package that we'll cover later) is permitted to import the infrastructure package:
The preceding diagram is somewhat of a paradox. ...