Chapter 1

Coupling and System Design

Strong or loose, we live in dread,

Of the coupling monster under the bed.

Yet without it, your system would flake,

Coupling is a pillar you can’t forsake.

The term “coupling” is often used as a shorthand for poor design. When a system’s structure actively resists changes we want to make, or when we are trying to find our way out of a labyrinth of entangled dependencies, we blame it on coupling. Not surprisingly, our natural tendency is to go ahead and “decouple everything.” Whether they’re classes, modules, services, or whole systems, we tend to break them apart so that the smaller components will give us the freedom to implement and evolve each component independently.

But is coupling necessarily the root ...

Get Balancing Coupling in Software Design: Universal Design Principles for Architecting Modular Software Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.