/Software Design

That's Not An Abstraction, That's Just A Layer Of Indirection

- Fernando Hurtado tl;dr: “If you've ever worked on refactoring or improving performance in a software system, you've probably run into a particular frustration: abstraction-heavy codebases. What looks like neatly organized and modularized code often reveals itself as a labyrinth, with layers upon layers of indirection. The performance is sluggish, debugging is a nightmare... This leads us to an important realization: not all abstractions are created equal. In fact, many are not abstractions at all—they're just thin veneers, layers of indirection that add complexity without adding real value.”

featured in #559


The Object-Oriented Software Patterns Every Engineer Should Know… and Their Pitfalls (Part 2)

- Dr. Panos Patros tl;dr: Object-oriented design patterns are a cheat code for software engineering, serving as versatile solutions to common problems. With part 2 in this series, Dr. Patros (CPEng) shows how to apply key OOP patterns, the risks of ad-hoc solutions, and the antipatterns that result from misuse or overuse.

featured in #502


The Object-Oriented Software Patterns Every Engineer Should Know… And Their Pitfalls

- Dr. Panos Patros tl;dr: Class is in session. Dr. Panos Patros, CPEng, explains object-oriented design patterns, highlighting their benefits and risks. The article compares these patterns to ad-hoc solutions, emphasizing code reusability and avoiding overcomplication through misuse or overuse. It also identifies common antipatterns across various programming languages.

featured in #487


Designing Good Interfaces

- Paul Boyd tl;dr: “An application with good code and a bad UI is still useless.” Paul looks at software design from both the application and UI perspective, illustrated with examples.

featured in #397