GRASP, SOLID, and GoF patterns for Frontend & Backend modern development
- SOLID
- Single responsibility principle: https://github.com/HowProgrammingWorks/SingleResponsibility
- Open/closed principle: https://github.com/HowProgrammingWorks/OpenClosed
- Liskov substitution principle: https://github.com/HowProgrammingWorks/LiskovSubstitution
- Interface segregation principle: https://github.com/HowProgrammingWorks/InterfaceSegregation
- Dependency inversion principle: https://github.com/HowProgrammingWorks/DependencyInversion
- Instantiation: Creational Patterns and Techniques
- Decomposition, Instantiation, Encapsulation, Aggregation, Composition, Association, Delegation
- Class composition (association, aggregation)
- GRASP: Information expert
- GRASP: Creator
- Abstract factory: https://github.com/HowProgrammingWorks/AbstractFactory
- Builder: https://github.com/HowProgrammingWorks/Builder
- Factory method: https://github.com/HowProgrammingWorks/Factory
- Object pool: https://github.com/HowProgrammingWorks/Pool
- Prototype: https://github.com/HowProgrammingWorks/PrototypePattern
- Do not confuse Prototype with Prototype-programming: https://github.com/HowProgrammingWorks/Prototype
- Singleton: https://github.com/HowProgrammingWorks/Singleton
- Revealing Constructor
- Flyweight: https://github.com/HowProgrammingWorks/Flyweight
- Isolation and Separation of Concerns
- Contracts and Contract programming, Interfaces
- Modularity, Layers and Low Coupling
- GRASP: Low coupling
- GRASP: High cohesion
- GRASP: Controller
- GRASP: Indirection
- Adapter: https://github.com/HowProgrammingWorks/Adapter
- Bridge: https://github.com/HowProgrammingWorks/Bridge
- Decorator: https://github.com/HowProgrammingWorks/Decorator
- Wrapper: https://github.com/HowProgrammingWorks/Wrapper
- Facade: https://github.com/HowProgrammingWorks/Facade
- Chain of responsibility: https://github.com/HowProgrammingWorks/ChainOfResponsibility
- Mediator: https://github.com/HowProgrammingWorks/Mediator
- Visitor: https://github.com/HowProgrammingWorks/Visitor
- Proxy: https://github.com/HowProgrammingWorks/Proxy
- Decoupling with Events and Messaging
- EventTarget and EventEmitter: https://github.com/HowProgrammingWorks/Events
- EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter
- Observer: https://github.com/HowProgrammingWorks/Observer
- Streams: Data Flows and Transformations
- RxJS and Event streams
- Actor model
- State and data manipulations
- Command: https://github.com/HowProgrammingWorks/Command
- State: https://github.com/HowProgrammingWorks/State
- Iterator: https://github.com/HowProgrammingWorks/Iterator
- Composite: https://github.com/HowProgrammingWorks/Composite
- Memento: https://github.com/HowProgrammingWorks/Memento
- Automata, Finite-state machine
- Related topics
- Error handling, Exceptions, Soft Failures, Logging
- DSL, AST with Pattern Interpreter, LISP
- Service Locator
- Interpreter: https://github.com/HowProgrammingWorks/Interpreter
- Strategy: https://github.com/HowProgrammingWorks/Strategy
- Template method: https://github.com/HowProgrammingWorks/TemplateMethod
- GRASP: Polymorphism
- GRASP: Protected variations
- GRASP: Pure fabrication
- «Design Patterns: Elements of Reusable Object-Oriented Software» Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- «Refactoring: Improving the Design of Existing Code Edition Unstated» Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Erich Gamma
- «Patterns of Enterprise Application Architecture» Martin Fowler
- «Clean Architecture: A Craftsman's Guide to Software Structure and Design» Robert C. Martin
- «Clean Code: A Handbook of Agile Software Craftmanship» Robert C. Martin
- «The Clean Coder: A Code of Conduct for Professional Programmers» Robert C. Martin
- «Designing Object Oriented C++ Applications Using The Booch Method» Robert C. Martin
- «Agile Software Development, Principles, Patterns, and Practices» Robert C. Martin
- «Agile Principles, Patterns, And Practices in C#» Robert C. Martin
- «UML for Java Programmers» Robert C. Martin
- «Working Effectively with Legacy Code» Robert C. Martin
- «Clean Agile: Back to Basics» Robert C. Martin
- «Clean Craftsmanship: Disciplines, Standards, and Ethics» Robert C. Martin
- «Functional Design: Principles, Patterns, and Practices» Robert C. Martin
- Singleton: https://youtu.be/qdJ5yikZnfE
- Factory and Pool: https://youtu.be/Ax_mSvadFp8
- Facade: https://youtu.be/oJtBO7CystE
- Adapter: https://youtu.be/cA65McLQrR8
- GoF Strategy: https://youtu.be/hO8VSVv0NqM
- GoF Command: https://youtu.be/vER0vYL4hM4
- Revealing Constructor: https://youtu.be/leR5sXRkuJI
- GoF Observable + Observer: https://youtu.be/_bFXuLcXoXg
- Single responsibility principle: https://youtu.be/o4bQywkBKOI
- Association, aggregation, composition: https://youtu.be/tOIcBrzezK0
- Liskov substitution principle: https://youtu.be/RbhYxygxroc
- Iterator and AsyncIterator: https://youtu.be/rBGFlWpVpGs
- Thenabe: https://youtu.be/Jdf_tZuJbHI https://youtu.be/DXp__1VNIvI
- Observer + Observable: https://youtu.be/_bFXuLcXoXg