Software Principles

DRY

  • don’t repeat yourself => don’t duplicate code ..

KISS

  • keep it simple => don’t add extra fluff

YAGNI

  • you aren't going to use it => don’t add extra fluff

SOLID

  • Single responsibility = module/class should have a single responsibility

  • Open/closed = module/class should be open for extension and closed for modification

  • Liskov substitution = objects from a class/type can be replaced by objects of the subclass/subtype

  • Interface segregation = many specific interfaces are better than 1 general-purpose interface

  • Dependency inversion = depend on abstractions and not on implementation details

Inversion of Control & Dependency Inversion

  • the flow is managed by a framework, which calls the custom code( written/applicative code)

Last updated

Was this helpful?