Get the latest tech news
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 is anything related to the structure of a software system that makes it hard to understand & modify the system.
Inheritance- Implementation inheritance in object-oriented systems creates dependencies between the parent class and each of its subclasses. Specifically, it advocates taking a strategic approach to programming tasks, where you intentionally invest time to produce clean designs and fix problems, in addition to getting new features working. Many programmers, by contrast, take a purely tactical approach that focuses only on getting new features working, disregarding the long-term costs of adding incremental complexity and other forms of cutting corners.
Or read this on Hacker News