The SOLID Principles:

https://www.freecodecamp.org/news/solid-principles-explained-in-plain-english/

  • TheĀ Single Responsibility Principle
  • TheĀ Open-Closed Principle
  • TheĀ Liskov Substitution Principle
  • TheĀ Interface Segregation Principle
  • TheĀ Dependency Inversion Principle

Separation of Concerns

https://medium.com/@codebob75/domain-driven-design-ddd-from-customer-ideas-to-code-a83a005326e9

  • A practice for dividing up code around specific responsibilities to improve maintainability, scalability, and readability.
  • Includes concepts like Coupling, Cohesion, Abstraction, Repository classes & the MVC/PAC pattern.

Domain Driven Design

https://medium.com/@codebob75/domain-driven-design-ddd-from-customer-ideas-to-code-a83a005326e9

  • Higher level software design approach for structuring code around the real-world business processes & language.
  • Includes concepts like Domains, Ubiquitous Language, & Bounded Contexts.