Awesome
Real World Design Patterns πΊοΈ
Explore real-world scenarios and best practices for design patterns in this comprehensive repository. Elevate your software design skills with practical examples and insightful discussions. β¨ This workspace has been generated by Nx, Smart Monorepos Β· Fast CI. β¨
How to Learn? π
For each design pattern, there is folder based on TypeScript
. If you are comming from another programming language world, don't worry. They are not complicated.
You can open directory, for instance:
$ cd app/strategy-pattern
There is a README
file that you can review first.
Structure of Readme
Here is some steps in each README
file:
- π‘ Use Case: a short description about the specific problem that we want to solve.
- β Bad Practice: a typical solution that works but not in a proper way.
- β Good Practice: implementing the specified design pattern to solve the problem in a proper way.
Diagram: There is also a diagram to represent the oveview of the design pattern to understand better. This is an example:
See /app
folder for all design patterns. β
How to Run
In the root directory, run:
$ npm install
To run the design pattern:
$ npm run -w PATTERN_NAME start
For instance PATTERN_NAME can be strategy-pattern
To run the bad practice:
$ npm run -w PATTERN_NAME start:bad
Run Tests
In order to run tests, run the following command. (add :watch
to run it in watch mode):
$ npm run test
Test Coverage
Run the following command to evaluate test coverage:
$ npm run test:cov
To see the coverage report, just run:
$ npm run test:cov:open
Contributing
Contributing to a community project is always welcome.
Checklist
- Strategy Pattern
- Dependency Injection Pattern
- Chain of Responsibility Pattern
- Builder Pattern
- Decorator Pattern
- Template Method Pattern
- Observer Pattern
- Command Pattern
- Proxy Pattern
- Adapter Pattern
Support
Any support is welcome. You can give the project a star, if you liked it β
License
MIT