A Philosophy of Software Design": A Must-Read for Mastering Complexity and Reducing Technical Debt
3 Key Takeaways for Building Cleaner, More Maintainable Codebases
Just finished reading "A Philosophy of Software Design", one of the best books I have ever read regarding what causes software complexity and some potential heuristics on how to continuously improve the codebase design and mitigate technical debt.
Specially liked these 3 takeaways:
1. Deeper layer APIs should in general be more generic than the layers above which will in principle be more exposed to changing requirements
2. Use documentation to drive the design and to reduce code obscurity
3. Try out at least two alternative designs and pick the best ideas from both approaches
I always felt that the GUI layer of any application was the most subject to changing requirements and that every effort should be taken to isolate the lower level layers API from the GUI changes - the Text Editor examples in this book really do an impressive job providing concrete implementations on how to achieve such isolation.
Highly recommend this book!
Just finished the book few days ago. Really a great one! Specially it changes my perspective about writing comment.