Designing Software in the Large
A Philosophy of Software Design is my favorite book I’ve read to date about designing large long-lived maintainable software programs. Here’s what I learned:
Complexity
Complexity is anything related to the structure of a software system that makes it hard to understand & modify the system.
Symptoms of complexity:
Change Amplification - A seemingly simple change requires code modifications in many different places.
High Cognitive Load - High amount of information a developer needs to know to com...
Read more at dafoster.net