Back to Developer Roadmap

Software Design Principles

src/data/roadmaps/software-design-architecture/content/[email protected]

4.0935 B
Original Source

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: