Before delving into big-picture architecture, I thought it would probably be useful to kickoff with a part of this book that directly and indirectly addresses decoupling.
What’s decoupling?
Decoupling is the opposite of coupling. And coupling is when the implementation of your feature is intertwined with the implementation of another feature.
As demonstrated in the first part of this book, surprisingly enough, writing architecture that doesn’t scale well has less to do with not knowing design patterns, and more to do with not locking your features for modification.
There’s a reason that sounds odd at first. Surely, it can’t be that simple.
And that’s the point. It’s not. A lot of common bad practices lead to coupling. It’s so easy to corner yourself into being forced to couple your features because you don’t have a clear relationship between your features.
Layered architecture
In this book in particular, you’ll notice a lot of focus on layered architecture and the dependency rule. This is done on purpose.
As mentioned before, this is not a design patterns book. And it doesn’t have to be. Layered architectures are fascinatingly useful for how simple they’re to implement.