March 2018
Intermediate to advanced
276 pages
7h 11m
English
Quick—how do we know if a software design is any good? Most answers concern facets of programming such as the importance of naming, testability, and cohesion. We’ll go beyond that and assert that none of those qualities matter unless our software design supports the kind of changes we need to make to the code.
This insight isn’t revolutionary in itself. What’s surprising is that we, as an industry, haven’t attempted to measure this aspect of code quality before. The main reason for our negligence is that time is invisible in code. As a consequence, we don’t have any detailed mental models of how our codebase evolves. Sure, we may remember the implementation of some large feature that transformed parts of the ...
Read now
Unlock full access