Coupling and extensibility
After all our changes, perhaps our most significant win is the decoupling of our packages. Wherever possible, our packages define and depend only on local interfaces. As a result of this, our unit tests are entirely isolated from other packages and validate our usage of our dependencies—the contract between our packages—without any dependence on them. This means a minimal scope of knowledge is required when working on our packages.
Perhaps more importantly, any changes or extensions we might want to make are likely to be contained to a single or small number of packages. For example, if we wanted to add a cache in front of our upstream currency conversion service, all of the changes would be made only to the exchange ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access