Este es un intento de recopilar toda la información sobre el diseño impulsado por dominios que el mundo conoce en lenguajes dinámicos (Python, Ruby, PHP, etc.). No solo DDD, sino toda la información valiosa sobre la arquitectura limpia y en capas con separación de la lógica empresarial de la infraestructura y el código marco.
¡Así que vámonos!
Patrones de arquitectura con Python (también conocido como "Cosmic Python"): libro de Harry Percival y Bob Gregory que presenta DDD y patrones estratégicos (próximamente en O'Reilly, también disponible en lanzamiento anticipado en safari
Arquitecturas limpias en Python - Libro de Leonardo Giordani basado en su publicación
Domain-Driven Rails: un libro de Robert Pankowecki y el equipo de Arkency sobre DDD, CQRS y abastecimiento de eventos relacionados con proyectos Rails
Diseño basado en dominios en PHP - Libro de Carlos Buenosvinos, Christian Soronellas y Keyvan Akbary sobre DDD e implementación con PHP
Bloques de construcción basados en eventos para el diseño basado en dominios con Python: este pequeño libro contiene un lenguaje de patrones conciso para DDD generado por eventos en Python. Este libro se centra en "bloques de construcción" confiables para DDD. Evita retomar los patrones "estratégicos" de DDD. Se necesita un enfoque práctico "de abajo hacia arriba" para crear aplicaciones y sistemas confiables, escalables y mantenibles. El prefacio incluye una consideración rejuvenecida del lenguaje patrón como descripción de eventos. Este es un libro pequeño y aún no está terminado.
Implementación de la Arquitectura Limpia: un libro que se centra en los aspectos prácticos de la implementación de la Arquitectura Limpia. Está ampliamente ilustrado por fragmentos de código en Python. Además de la propia Arquitectura Limpia, también introduce otros patrones de ingeniería de software, como la modularidad y la inyección de dependencias. CQRS o abastecimiento de eventos.
Separación de lógica empresarial y acceso a datos en Django - Python, Django
¿Por qué el diseño basado en dominios parece sólo popular en lenguajes estáticos como C y Java?
¿Esfuerzos de diseño impulsado por dominio en lenguajes dinámicos?
DDD - Domain Driven Design, ¿qué orden de desarrollo se debe aplicar? - Pitón
Recuperar agregados desde el interior de otros agregados: pregunta de StackOverflow sobre agregados en la aplicación Python
Evitar el efecto dominó en nuestros servicios (SÓLIDO a nivel de macrodiseño)
Aplicaciones Clean Architecture Python (web): Przemek Lewandowski sobre la aplicación de Clean Architecture del tío Bob a aplicaciones web Python con ejemplos de código y anotaciones de tipo
Domain Driven Design con Python: diapositivas en portugués, pero contiene código útil en Python
Del registro activo a los eventos: Emanuele DelBono sobre el uso de DDD/CQRS/ES en aplicaciones Ruby on Rails
Del código acoplado al marco a los microservicios a través de DDD
Diseño hexagonal en Django: Python, Django, contiene algo de código.
Microservicios: Mejorando la autonomía de nuestros equipos con Event-Driven Architecture
DDD para desarrolladores de Rails: blog completo de Victor Savkin sobre DDD en Ruby on Rails
Diseño basado en dominios y arquitecturas MVC: dos artículos de Federico Cargnelutti con ejemplos de PHP en la segunda parte
Objetos de valor en Java y Python: acerca de Value Object
, comparación de objetos de valor en Java y Python
Python metódico de diseño impulsado por dominio: un pequeño resumen sobre DDD en Python
Explorando dominios con Python - Un pequeño artículo con ejemplo de clases Repository
y Storage
Arquitecturas limpias en Python: un ejemplo paso a paso - Implementación de la Arquitectura Limpia del Tío Bob en Python. Contiene una explicación paso a paso y un repositorio de github con todo el código.
Presentamos el controlador de comandos en https://www.cosmicpython.com/ (anteriormente en el blog de tecnología de made.com), seguido del patrón de repositorio y unidad de trabajo en Python, CQRS/controladores y vistas y ¿Por qué utilizar eventos de dominio?
Aplicaciones web grandes en Python: una buena arquitectura: artículo que señala que MVC no es suficiente para aplicaciones grandes y que necesita una capa separada para la lógica empresarial.
Subreddit DDD + Ruby: un subreddit para desarrolladores de Ruby interesados en el diseño basado en dominios.
Blog y boletín informativo de Arkency: escriben mucho sobre DDD, Event Sourcing y pruebas en Ruby/Rails. No solo texto sin formato, sino código e incluso seminarios web ocasionalmente.
Hanami em Production – 2 anos depois: publicación en portugués que describe la experiencia de Creditas en la creación y mantenimiento de su aplicación principal (60.000 líneas de código + 2 millones de solicitudes/mes) con DDD en Ruby utilizando el marco Hanami.
Cómo mejorar la denominación de contextos en el diseño basado en dominios: describe la técnica para encontrar un mejor nombre para sus contextos acotados.
Implementación del diseño basado en dominios en PHP: presente el diseño basado en dominios y cómo implementarlo en Laravel con PHP por Alireza Rahmani Khalili.
Event Sorcery: blog detallado con artículos extensos sobre la creación de aplicaciones impulsadas por dominios basadas en eventos con Python.
Cómo empezar con DDD y Onion-Architecture en la aplicación web Python: título bastante claro de la publicación del blog de Takahiro Ikeuchi. Incluyendo el repositorio de github con la implementación de la idea.
Ejemplo práctico de arquitectura hexagonal con uso de Python (ejemplo de FastAPI incluido): artículo sobre arquitectura hexagonal, que explica los conceptos básicos y muestra los ejemplos de código.
Diseño basado en dominios con Python: excelente charla sobre DDD y Python con explicaciones de muchos temas de DDD y ejemplos de código de Robert Smallshire de Skills Matter.
Patrones de diseño basados en dominios en Python: charla detallada sobre patrones DDD en Python por Robert Smallshire de EuroPython 2018
La arquitectura limpia en Python: charla impresionante sobre PyOhio2014 de Brandon Rhodes
Arquitectura hexagonal en Django Talk en ruso por @proofit404, contiene ejemplos de código y diseño de proyecto
Diseño impulsado por dominio y arquitectura hexagonal con rieles: charla sobre Ruby on Rails de RailsConf 2014 por Eric Roberts y Declan Whelan con ejemplos de código
Rieles hexagonales: Ruby on Rails, GoRuCo 2012 por Matt Wynne
Arquitectura hexagonal en DDD - Golf con DDD en PHP por Gordon Skinner de PHP UK Conference
Boundaries Python - Charla sobre Boundaries
por Gary Bernhardt de Pycon US 2013
Boundaries Ruby: la misma charla de Gary Bernhardt pero en Ruby de Ruby Conf 12. Contiene una sección de control de calidad.
Hexagonal TDD: implementación TDD de la arquitectura hexagonal de la aplicación de rieles. En 3 partes.
Jim Weirich sobre el desacoplamiento de los rieles: presentación de Jim Weirich de octubre CincyRb.
De Active Record a Eventos: una charla de Emanuele DelBono de Wroclove.rb sobre DDD/CQRS/ES en Ruby y Ruby on Rails.
Construido para durar: un enfoque basado en dominios para sistemas hermosos: charla en RailsConf 2017 a cargo de Andrew Hao. Técnicas para refactorizar el código base heredado al estilo DDD, descripción general del diseño y ejemplos de código.
Técnicamente DDD: charla fantástica de Pim Elshoff sobre cómo comenzar con DDD usando objetos de valor, entidades y servicios en PHP
Quizás: Aplicación del diseño basado en dominios y arquitecturas reactivas a la programación funcional: una charla de Rob Martin de ElixirConf 2017.
Arquitectura Limpia - Charla PyGotham 2018 de Sebastian Buczyński con código y diapositivas. También hay una entrada de blog en inglés.
Diseño impulsado por dominio: charla CODEiD 2018 a cargo de Артём Антоненко @Antonyan. En ruso. También hay un repositorio: PHP DDD Skeleton y otros proyectos relacionados con DDD en su cuenta de github.
Eventsourcing 101: la charla sobre el abastecimiento de eventos con codificación en vivo en Python de Bob Gregory. Codifica una canasta de comercio electrónico generada por eventos desde cero.
Diseño basado en dominio para Python - Episodio 219 - Cuando sus proyectos de software comienzan a escalar, comprender y mantener todas las piezas se convierte en un desafío mayor. En este episodio, Henry Percival comparte sus experiencias trabajando con diseño impulsado por dominios en grandes proyectos de Python.
Как мы уменьшили сложность наших проектов - Charla de PyCon RU 2019 a cargo de Борис Цема (en ruso) sobre el uso de patrones DDD para reducir los proyectos de Wargaming.net.
Arquitecturas Limpias en Python - Charla PyLondinium19 de Leonardo Giordani
Event Sourcing en Python: biblioteca de Python madura, estable y popular para eventos y DDD.
PyAssimilator: un conjunto de patrones DDD en Python con soporte para varias bibliotecas externas.
dry-python: un conjunto de bibliotecas de Python para componentes de lógica empresarial conectables.
Aplicación de muestra Ruby DDD: puerto de la aplicación de muestra DDD escrita en Java en Ruby. Definitivamente vale la pena leerlo.
DDD en Django: un intento de implementar DDD y arquitectura hexagonal en Django
DDD en Flask: un ejemplo conciso de arquitectura inspirada en DDD usando Flask
DDD en Falcon: una implementación simple de DDD y arquitectura hexagonal en Falcon con algunas baterías incluidas.
Kanban en Python: implementación en Python de un tablero kanban simple con enfoque DDD.
Kanban en Clojure - Lo mismo en Clojure
Ejercicios de Kanban en Python: el mismo tablero dividido en ejercicios para estudiantes de algún taller de Sixty-North.
Rewind: Rewind es un servidor de almacén de eventos (CQRS) escrito en Python. No es que esté escrito con el enfoque DDD, pero aún está relacionado.
La aplicación de ejemplo Clean Architecture (python): repositorio con una aplicación modular de ejemplo escrita en Python. El código se utiliza en el libro Implementación de la arquitectura limpia.
La arquitectura limpia con Python: discusión en Reddit sobre el tema y esta esencia con la arquitectura propuesta y algunos comentarios al respecto.
abidria-api: aplicación Django escrita con arquitectura limpia. También hay un artículo de Jordi Fierro que explica los componentes de la arquitectura y cómo interactúan entre sí.
Hanami: una buena opción fuera del mundo Rails, Hanami es un marco emergente que fomenta y ayuda a diseñar aplicaciones DDD en Ruby. La guía de introducción hace referencia a algunos conceptos de DDD y cómo encajan dentro del marco.
Arquitectura Hexagonal + DDD + CQRS aplicado en PHP usando Symfony 4
Revents: una posible implementación de DDD/CQRS/ES en Ruby y Ruby on Rails
Muestra de DDD Rails: proyecto destinado a ser utilizado como punto de partida para aquellos que desean crear aplicaciones de diseño controlado por dominio en Rails.
Clases e interfaces de diseño controlado por dominio: el proyecto es una colección de muestra de PHP de clases e interfaces inspiradas en diseño controlado por dominio.
Aplicación bancaria DDD CQRS ES: aplicación bancaria que sigue las reglas DDD, utilizando arquitectura limpia, abastecimiento de eventos y CQRS.
La aplicación de ejemplo de Arquitectura Hexagonal (python, con FastAPI): aplicación de ejemplo escrita en Python sobre el marco web FastAPI, utilizando los principios de la Arquitectura Hexagonal.
Patrones DDD en Python: Sixty North ofrece capacitación presencial de dos días sobre la implementación de DDD en Python con persistencia relacional o basada en eventos.
Taller de diseño impulsado por rieles + dominio: talleres de Arkency. La página debe tener un cronograma para futuros talleres y un resumen de qué esperar de ellos.
Curso de Fundamentos de EventStorming (también en español) - aprenda los fundamentos de EventStorming para diseñar software con mentalidad DDD para luego implementarlo con cualquier lenguaje de programación dinámico.