### S.O.L.I.D. Design Principles
%%should this be in [[3. Design the App & Choose a Tech Stack]]?%%
Design principles are like general guidelines for becoming a better programmer. They're the raw philosophies of code that help ensure the code is high-quality, maintainable, scalable, reusable, and testable over time. There are many principles out there, too many to cover right now, but we will briefly cover five very important ones which go under the acronym S.O.L.I.D.:
1. [[Single Responsibility Principle (SRP)]]
2. [[Open/Closed Principle (OCP)]]
3. [[Liskov's Substitution Principle (LSP)]]
4. [[Interface Segregation Principle (ISP)]]
5. [[Dependency Inversion Principle (DIP)]]
