https://github.com/jpcadena/design-patterns
Design Patterns for Clean Code in Python
https://github.com/jpcadena/design-patterns
behavioral clean-code creational dependency-inversion design-patterns development gamma-categorization interface-segregation liskov-subsititution open-closed oriented-object-programming pep8 programming pylint python single-responsability software-engineering solid-principles structural type-hint
Last synced: 4 months ago
JSON representation
Design Patterns for Clean Code in Python
- Host: GitHub
- URL: https://github.com/jpcadena/design-patterns
- Owner: jpcadena
- License: mit
- Created: 2023-02-18T02:34:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T22:10:45.000Z (about 1 year ago)
- Last Synced: 2024-04-21T17:05:22.008Z (about 1 year ago)
- Topics: behavioral, clean-code, creational, dependency-inversion, design-patterns, development, gamma-categorization, interface-segregation, liskov-subsititution, open-closed, oriented-object-programming, pep8, programming, pylint, python, single-responsability, software-engineering, solid-principles, structural, type-hint
- Language: Python
- Homepage: https://github.com/jpcadena/design-patterns
- Size: 352 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# design-patterns
Table of Contents
## About the project
[![Project][project-screenshot]](https://example.com)
This project is about Design Patterns in Python that includes the S.O.L.I.D.
principles and the Gamma Categorization for 23 design patterns classified into
Creational, Behavioral and Structural based on Clean Code: A Handbook of Agile
Software Craftsmanship by Robert C. Martin.## Built with
[![Python][python-shield]][python-url] [![isort][isort-shield]][isort-url] [![Black][black-shield]][black-url] [![Ruff][ruff-shield]][ruff-url] [![MyPy][mypy-shield]][mypy-url] [![pre-commit][pre-commit-shield]][pre-commit-url] [![GitHub Actions][github-actions-shield]][github-actions-url] [![Poetry][poetry-shield]][poetry-url] [![Pycharm][pycharm-shield]][pycharm-url] [![Visual Studio Code][visual-studio-code-shield]][visual-studio-code-url] [![Markdown][markdown-shield]][markdown-url] [![License: MIT][license-shield]][license-url]
## Getting started
### Prerequisites
- [Python 3.11][python-docs]
### Installation
1. Clone the **repository**
```
git clone https://github.com/jpcadena/design-patterns.git
```
2. Change the directory to **root project**
```
cd design-patterns
```
3. Install **Poetry** package manager
```
pip install poetry
```
4. Install the project's **dependencies**
```
poetry install
```
5. Activate the **environment**
```
poetry shell
```### Usage
1. Execute with console
```
python main.py
```## Contributing
[![GitHub][github-shield]][github-url]
Please read our [contributing guide](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
## Security
For security considerations and best practices, please refer to our [Security Guide](SECURITY.md) for a detailed guide.
## Code of Conduct
We enforce a code of conduct for all maintainers and contributors. Please read our [Code of Conduct](CODE_OF_CONDUCT.md) to understand the expectations before making any contributions.
## License
Distributed under the MIT License. See [LICENSE](LICENSE) for more information.
## Contact
- [![LinkedIn][linkedin-shield]][linkedin-url]
- [![Outlook][outlook-shield]](mailto:[email protected]?subject=[GitHub]design-patterns)
[project-screenshot]: assets/images/project.png
[python-docs]: https://docs.python.org/3.11/
[//]: # "Shields"
[linkedin-shield]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white
[outlook-shield]: https://img.shields.io/badge/Microsoft_Outlook-0078D4?style=for-the-badge&logo=microsoft-outlook&logoColor=white
[python-shield]: https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54
[pycharm-shield]: https://img.shields.io/badge/PyCharm-21D789?style=for-the-badge&logo=pycharm&logoColor=white
[markdown-shield]: https://img.shields.io/badge/Markdown-000000?style=for-the-badge&logo=markdown&logoColor=white
[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white
[ruff-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json
[black-shield]: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge&logo=appveyor
[mypy-shield]: https://img.shields.io/badge/mypy-checked-2A6DB2.svg?style=for-the-badge&logo=appveyor
[visual-studio-code-shield]: https://img.shields.io/badge/Visual_Studio_Code-007ACC?style=for-the-badge&logo=visual-studio-code&logoColor=white
[poetry-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/python-poetry/website/main/static/badge/v0.json
[isort-shield]: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
[github-actions-shield]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge&logo=githubactions&logoColor=white
[pre-commit-shield]: https://img.shields.io/badge/pre--commit-F7B93E?style=for-the-badge&logo=pre-commit&logoColor=white
[license-shield]: https://img.shields.io/badge/License-MIT-yellow.svg
[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white
[//]: # "URL"
[linkedin-url]: https://linkedin.com/in/juanpablocadenaaguilar
[python-url]: https://www.python.org/[pycharm-url]: https://www.jetbrains.com/pycharm/
[markdown-url]: https://daringfireball.net/projects/markdown/
[github-url]: https://github.com/jpcadena/design-patterns
[ruff-url]: https://beta.ruff.rs/docs/
[black-url]: https://github.com/psf/black
[mypy-url]: http://mypy-lang.org/
[visual-studio-code-url]: https://code.visualstudio.com/
[poetry-url]: https://python-poetry.org/
[isort-url]: https://pycqa.github.io/isort/
[github-actions-url]: https://github.com/features/actions
[pre-commit-url]: https://pre-commit.com/
[license-url]: https://opensource.org/licenses/MIT
[github-url]: https://github.com/jpcadena/design-patterns