Basic

Details

  1. What are design patterns?
  2. Types of patterns
    1. Creational
    2. Structural
    3. Behavioral
  3. Most used patterns
    1. MVC/MVVM
    2. Singleton
    3. Strategy
    4. Proxy
    5. Observer
  1. https://en.wikipedia.org/wiki/Software_design_pattern
  2. https://refactoring.guru/design-patterns
  3. https://www.patterns.dev/
  4. https://www.patterns.dev/posts/observer-pattern/

Courses

  1. https://frontendmasters.com/courses/tour-js-patterns/

Intermediate

Details

  1. GoF Patterns
    1. Factory, factory method
    2. Decorator
    3. Adapter
    4. Facade
    5. Chain of responsibility
    6. Visitor
  2. Other patterns, principles
    1. Container/Presentational (or smart and dump) components
    2. Composition over inheritance
    3. DRY, KISS, SOLID
    4. Low coupling, high cohesion
    5. MVC
  3. IoC (inversion of Control)
    1. Dependency Injection
    2. Service Locator
  1. https://www.patterns.dev/posts/presentational-container-pattern/
  2. https://refactoring.guru/
  3. https://www.patterns.dev/posts/command-pattern/
  4. https://betterprogramming.pub/10-design-principles-in-software-engineering-f88647cf5a07
  5. https://www.thoughtworks.com/insights/blog/composition-vs-inheritance-how-choose
  6. https://en.wikipedia.org/wiki/Model–view–controller
  7. https://en.wikipedia.org/wiki/Inversion_of_control
  8. https://www.educative.io/answers/what-is-inversion-of-control
  9. https://blog.logrocket.com/top-five-typescript-dependency-injection-containers/
  10. https://medium.com/monstar-lab-bangladesh-engineering/simplifying-dependency-injection-and-ioc-concepts-using-typescript-b70643f71c91
  11. https://levelup.gitconnected.com/dependency-injection-in-typescript-2f66912d143c
  12. https://dev.to/vovaspace/dependency-injection-in-typescript-4mbf

Courses

  1. https://frontendmasters.com/courses/tour-js-patterns/

Advanced

Details

  1. GoF patterns
    1. Bridge
    2. Prototype
    3. Abstract Factory
    4. Flyweight
    5. Command
    6. Memento
  2. Demeter’s Law
  3. Anti-patterns
  4. Aspect-oriented programming
  5. Designing pluggable, modular systems
  1. https://refactoring.guru/design-patterns/catalog
  2. https://en.wikipedia.org/wiki/Anti-pattern
  3. https://en.wikipedia.org/wiki/Aspect-oriented_programming
  4. https://betterprogramming.pub/demeters-law-don-t-talk-to-strangers-87bb4af11694

Books

https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201

Courses

  1. https://frontendmasters.com/courses/tour-js-patterns/

Notes