December 2021
Intermediate to advanced
256 pages
7h 25m
English
Cohesion (in computer science) is defined as “the degree to which the elements inside a module belong together.”1
My favorite way to describe good software design is based on this Kent Beck quote:
Pull the things that are unrelated further apart, and put the things that are related closer together.
This simple, slightly jokey phrase has some real truth in it. Good design in software is really about the way in which we organize the code in the systems that we create. All my recommended principles to help us manage complexity are really about compartmentalizing our systems. We need to be able to build our systems out of smaller, more easily understandable, more easily testable, discrete ...