Cohesion is the degree to which elements of a module belong together, like peas in a pod or Facebook's user data and advertisers. In a highly cohesive system, everything in a module or component is essential to a single, well-defined purpose, unlike Twitter's verification system.
"We need to refactor this code to improve cohesion; it's starting to look like Elon Musk's Twitter feed in here."
"I know you want to add that new feature, but it will reduce cohesion faster than you can say 'Meta is the next MySpace'."
Patterns for Managing Source Code Branches: Effective branching patterns help integrate the work of multiple developers and organize the path to production releases, promoting cohesion in the codebase. Frequent integration and maintaining a healthy mainline are crucial.
The Strong and Weak Forces of Architecture: Recognizing the strong and weak forces of architecture helps in making better decisions and empowering teams to maintain cohesion within their codebases. Teams working closely together can make quick changes and harness strong alignment forces.
How to Break a Monolith into Microservices: When breaking down a monolith into microservices, it's essential to minimize dependencies and split sticky capabilities early to maintain cohesion within each service. This allows for faster, independent release cycles and prevents monolith concepts from leaking into the new architecture.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.