Case study of over-engineered C++ code
A case study analyzing over-engineered C++ code for file format detection, showing how to simplify object-oriented design and remove unnecessary complexity.
A case study analyzing over-engineered C++ code for file format detection, showing how to simplify object-oriented design and remove unnecessary complexity.
Discusses the conceptual problem of inheritance in object-oriented programming for statistical methods, using R's lm and glm classes as examples.
Explores the Liskov Substitution Principle using the classic 'Is a square a rectangle?' example in object-oriented programming.
A detailed guide to SOLID principles in C#, explaining each principle with code examples to improve code readability, maintainability, and flexibility.
A defense of the SOLID principles in modern software development, arguing they remain essential for writing simple, maintainable code.
An explanation of GRASP (General Responsibility Assignment Software Patterns), a set of object-oriented design principles for assigning responsibilities in software.
Analyzes the Builder pattern in Java, discussing its benefits, potential overuse, and alternatives for simplifying class design.
A collection of practical programming wisdom covering code design, testing, dependencies, and development processes for better software engineering.
A critique of object-oriented inheritance, arguing it forces problematic 'is-a' relationships and promotes using composition (has-a) and the Strategy pattern instead.