Visit complete Design and Architecture roadmap

← Back to Topics List

Software Design Principles

There are many software design principles that aim to guide the development of software in a way that makes it easy to understand, maintain, and extend. Some of the most common design principles include:

  • SOLID principles (Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle)
  • DRY (Don’t Repeat Yourself)
  • YAGNI (You Ain’t Gonna Need It)
  • KISS (Keep It Simple, Stupid)
  • LoD (Law of Demeter)
  • Composition over Inheritance
  • Encapsulate What Varies
  • Hollywood Principle
  • Program Against Abstractions

By following these design principles, software can be developed in a way that is easy to understand, maintain, and extend, and that is less prone to bugs.

Learn more from the following resources:

Roadmaps Guides Videos About YouTube

roadmap.sh by Kamran Ahmed

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh · FAQs · Terms · Privacy