Skip to Content
Clean Code Cookbook
book

Clean Code Cookbook

by Maximiliano Contieri
September 2023
Intermediate to advanced
430 pages
8h 6m
English
O'Reilly Media, Inc.
Content preview from Clean Code Cookbook

Chapter 17. Coupling

Two parts of a software system are coupled if a change in one might cause a change in the other.

Neal Ford et al., Software Architecture: The Hard Parts (O’Reilly 2021)

17.0 Introduction

Coupling is the degree of interdependence between your objects. Higher coupling means that changes in one object can have a significant impact on others, whereas low coupling means that objects are relatively independent and changes in one of them have little impact on others. High coupling can make it difficult to make changes to software without unintended consequences. Most of the work in a large software system lowers accidental coupling. Systems with high coupling are harder to understand and maintain, the interactions between objects are more complex, and changes cause ripple effects throughout the codebase. An entangled system with desirable emergent properties can be fascinating, while a badly coupled one can become a maintenance nightmare.

17.1 Making Hidden Assumptions Explicit

Problem

You have code with hidden assumptions not explicit in your solution and they affect your system’s behavior.

Solution

Keep your code explicit.

Discussion

Software is about contracts, and ambiguous contracts are a nightmare. Hidden assumptions are underlying beliefs or expectations not explicitly stated in the code. They are still present and can impact the behavior of the software. Various factors can give rise to assumptions, such as incomplete requirements, incorrect presumptions ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

GitOps Cookbook

GitOps Cookbook

Natale Vinto, Alex Soto Bueno
TypeScript Cookbook

TypeScript Cookbook

Stefan Baumgartner
JavaScript Cookbook, 3rd Edition

JavaScript Cookbook, 3rd Edition

Adam D. Scott, Matthew MacDonald, Shelley Powers

Publisher Resources

ISBN: 9781098144715Errata Page