Sobre el proyecto
python-patterns es una colección de referencia de patrones de diseño e idiomas implementados en Python. Más que una biblioteca, es un recurso de aprendizaje: cada patrón reside en su propio módulo pequeño dentro de una carpeta de categoría, y el README los indexa con descripciones breves.
La cobertura se organiza en varios grupos. Los patrones creacionales incluyen abstract_factory, borg, builder, factory, lazy_evaluation, pool y prototype. Los patrones estructurales incluyen 3-tier, adapter, bridge, composite, decorator, facade, flyweight, front_controller, mvc y proxy. Los patrones de comportamiento incluyen chain_of_responsibility, catalog, chaining_method, command, interpreter, iterator (con una implementación alternativa), mediator, memento, observer, publish_subscribe, registry, servant, specification, state, strategy, template y visitor. También hay ejemplos de diseño para testabilidad (dependency_injection con tres variantes), un delegation_pattern fundamental, y otros patrones como blackboard, graph_search y una máquina de estados jerárquica (hsm).
El README enmarca explícitamente los patrones como compensaciones, animando a los lectores a centrarse en por qué se elige un patrón en lugar de solo cómo se codifica. También documenta antipatrones que se desaconsejan en Python, incluidos singleton (los módulos ya son singletons), god object y el uso excesivo de herencia, con alternativas sugeridas como variables a nivel de módulo, inyección de dependencias, composición y delegación.
Se espera que cada módulo de ejemplo lleve un docstring a nivel de módulo con referencias y, cuando sea posible, una sección "Ejemplos en el ecosistema Python" que muestre uso en el mundo real. El proyecto mantiene una etiqueta legacy para versiones compatibles con Python 2 de algunos patrones. La guía de contribución cubre docstrings, actualizaciones del README y la ejecución de ./lint.sh para formato, linting, verificación de tipos y pruebas; las dependencias de desarrollo están fijadas en Pipfile.lock y se regeneran con make lock. El triaje de problemas se apoya en CodeTriage, y el README enlaza varias charlas y videos de conferencias sobre patrones de diseño en Python.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.