5 Design Principles from a Software Architecture guru

What is the difference between a design “principle” and a design “pattern”?

Luca Pelosi
9 min readApr 20, 2022
image from https://unsplash.com/

We could ask to Robert C. Martin, programmer since 1970 and creator of some affirmed software design principles called SOLID principles. He’s our guru.

NOTE: This is one of a series of articles based on excellent Robert’s work Clean Architecture: A Craftsman’s Guide to Software Structure and Design” (Prentice Hall) a book that every software architecture passionate should read.
My ambitious purpose is to condense Uncle Bob’s precious teachings into a few simple articles, so consider following me and checking out the previous and next articles if you want a broader view of the world of Software Architecture.

Without bothering Robert, I can summarise that a “design principle” is more an abstract guideline (not specific to any programming language) that helps you to take correct choices at any level of your software architecture.
A “design pattern” instead, is a well-established technique to resolve a real-world problem and you can apply it only if specific terms and conditions are met. Many times, a design pattern arises from a more generic design principle.

SOLID principles

--

--

Luca Pelosi

Sr Automation Software Engineer at Expedia Group, technology enthusiast. Gush out ideas, startups, personal growth, finance and innovation as much as possible.