Enforcing Architecture Boundaries
We talked a lot about architecture in previous chapters and it feels good to have a target architecture to guide us in our decisions on how to craft code and where to put it.
In every above-playsize software project, however, architecture tends to erode over time. Boundaries between layers weaken, code becomes harder to test, and we generally need more and more time to implement new features.
In this chapter, we’ll discuss some measures that we can take to enforce the boundaries within our architecture and thus fight architecture erosion.