Below you will find pages that utilize the taxonomy term “DDD”
Rigor Talks – PHP – #31 – Viewing Domain Events with Kibana (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación.
En este vídeo, vamos a configurar Kibana para montar gráficos y ver la información de los eventos que hemos enviado a Elastic de una forma que negocio flipe :)
Rigor Talks – PHP – #30 – Sending Domain Events to Elastic III (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación.
En este vídeo, vamos a ver la cómo enriquecer el evento de dominio antes de enviarlo a Elastic. Agregaremos información sobre la request, memoria, etc. para traquear si algún servidor está procesando menos eventos de un cierto tipo.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #29 – Sending Domain Events to Elastic II (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación. En este vídeo, vamos a ver la segunda alternativa para enviar todos los eventos juntos de una vez, después de ejecutar el command handler. Reducimos números de peticiones mejorando el rendimiento.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #28 – Sending Domain Events to Elastic (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events pero esta vez con un caso práctico de uso muy interesante para marcarse un tanto con negocio. Vamos a enviar los eventos de dominio contra un Elastic para que podamos finalmente agregar un Kibana y tener métricas en tiempo real de lo que ocurre en nuestra aplicación. En este vídeo, vamos a ver una de las alternativas para hacer esto, el envío síncrono a Elastic por cada eventos disparado.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #27 – Distributing Domain Events using RabbitMQ (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este sexto video de la serie, vamos a distribuir los eventos, que tenemos persistidos en base de datos, hacia un sistema de colas como RabbitMQ. Veremos algunas consideraciones y trucos a tener en cuenta.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #26 – Distributing Domain Events using REST (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este quinto video de la serie, vamos a empezar a discutir manera de distribuir los eventos. El primer método es quizá menos conocido, REST. Veremos qué beneficios tiene y algunos trucos para implementarlo.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #25 – Persisting Domain Events (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este cuarto video, vamos a ver cómo implementar la persistencia de Eventos de Dominio, para qué es útil y cuáles son sus beneficios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #24 – Domain Events III (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este tercer video, veremos la segunda alternativa para disparar un evento de dominio: un publisher estático. Veremos sus puntos fuertes y flojos.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #23 – Domain Events II (Spanish)
Hola Amigos del Rigor! Continuamos con la serie sobre Domain Events. En este segundo video, veremos la primera alternativa para disparar un evento de dominio: acumularlos en la entidad. Veremos sus puntos fuertes y flojos.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #22 – Domain Events I (Spanish)
Hola Amigos del Rigor! Arrancamos una miniserie de videos sobre Domain Events. En este primer video, veremos cómo modelar un evento de dominio e introduciremos las diferentes manera de dispararlos. En los siguientes, veremos en detalle dichas alternativas, así como su relación con la persistencia y la distribución.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #21 – Command Bus (Spanish)
Hola Amigos del Rigor! Perdonad por el retraso pero estuve preparando la certificación de AWS Certified Solutions Architect – Associate que al final conseguí la semana pasada.
En este video, vamos a continuar evolucionando los Command Handlers y su contexto de ejecución presentando el Command Bus. Veremos cuáles son sus objetivos y para qué nos resulta útil. Por último, hablaremos sobre Tactician.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
No necesitáis consultoría sobre DDD: Caso Motor de Reservas
Cuando una empresa me contacta para hacer consultoría, monto un Skype para entender mejor las necesidades y la situación en la que se encuentra. Normalmente, hablo con un par de técnicos y/o el CTO que me cuentan sus dificultades. Tengo varias de éstas al mes. Algunas son empresas grandes (50 developers o más) y más pequeñas (menos de 10 developers). Como no me gano la vida haciendo consultoría, soy muy imparcial con lo que necesitan y sobretodo con lo que no necesitan. En sus dificultades, algunos patrones se repiten (miedos, prejuicios, presiones, modas, etc.). Me gustaría resumir cómo fue una de esas video conferencias por si podéis estar en la misma situación.
Rigor Talks – PHP – #20 – Application Services and Command Handlers (Spanish)
Hola Amigos del Rigor! Vamos con una entrega más. En esta ocasión, vamos a ver la diferencia entre Application Services y Command Handlers, así como algún truco sobre Command Handlers para decorarlos y facilitar tareas como el Logging o la gestión de Transacciones.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #19 – Refactor Use Case VI (Spanish)
Hola Amigos del Rigor! Después de explicar el principio de Tell-Don’t-Ask, continuamos con la serie de los videos de refactoring. En este video, vamos a ver cómo extraer dependencias como Loggers, Servicios para enviar notificaciones o similares usando una primera aproximación sencilla con un EventDispatcher.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #18 – Tell-Don’t-Ask (Spanish)
Hola Amigos del Rigor! Hacemos un parada en la serie de los videos sobre refactoring para explicar el principio de Tell-Don’t-Ask. Lo hemos ido utilizando en los videos anteriores pero no lo había presentado formalmente.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #17 – Refactor Use Case V (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. Los Application Services deben coordinar pero no contener lógica de negocio. En este video, veremos varios trucos para mover la lógica de negocio del Application Service hacia Entidades y Repositorios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Si los videos os gustan, no olvidéis suscribiros a mi canal. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #16 – Refactor Use Case IV (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a mejorar la calidad de los tests unitarios acabando de agregar assests que faltaban e introduciendo un Spy. Con esto, nos aseguraremos que aún teniendo 100% de cobertura en los tests, tenemos que esta atentos a invocaciones que no tienen retorno, como logging, notifiers, publishers de eventos, etc.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #15 – Refactor Use Case III (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a acabar de testear por completo todo el Application Service del video anterior utilizando técnicas que vimos en los videos anteriores como Test Classes o Self-Shunt. En el siguiente video veremos cómo enriquecer nuestro dominio moviendo parte de la lógica a las entidades.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #14 – Refactor Use Case II (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre los videos de refactoring. En éste, vamos a testear parte del Application Service que extrajimos en el video anterior. Aprovecharemos para mejorar el código con algunos casos no contemplados en el código original.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #13 – Refactor Use Case I (Spanish)
Hola Amigos del Rigor! Hoy es mi cumpleaños, 34 primaveras. He traído donuts a la oficina, pero como no podéis acceder a ellos :(, aquí os dejo un regalito para vosotros! Arranco una nueva serie de videos sobre Refactoring de código acoplado. En este video, vamos a ver cómo refactorizar código escrito directamente en el controlador web de cualquier framework donde se mezcla lógica de negocio y detalles de infraestructura.
Lo sacaremos a un Application Service, invertiremos todas las dependencias y lo dejaremos listo para poderlo testear.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #12 – Mutant Testing (Spanish)
Hola Amigos del Rigor! Unit Testear nuestro código con un 100% de coverage no es suficiente. En este video, vamos a ver cómo aplicar “Mutant Testing” a nuestro código para mejorar la calidad de nuestros tests unitarios.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #11 – Immutability (Spanish)
Hola Amigos del Rigor! Continuamos con un video sobre inmutabilidad. Vamos a ver cómo poder hacer que nuestras clases, especialmente aquellas con las que modelamos Value Objects pueden ser inmutables.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #10 – Self-Shunt III (Spanish)
Hola Amigos del Rigor! Vamos a con el último de los tres videos sobre el patrón de testing “Self-Shunt”. En este video, veremos un truco muy sencillo para poder testear cadenas de invocaciones que incumplen la ley de Demeter.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #9 – Self-Shunt II (Spanish)
Hola Amigos del Rigor! Vamos a con el tercer de los cuatro videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. En este video, veremos una implementación alternativa del “Self-Shunt” sólo para PHP7 usando clases anónimas.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #8 – Self-Shunt (Spanish)
Hola Amigos del Rigor! Vamos a con el segundo de los cuatro videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. En este video, veremos un atajo para implementar “Test Classes” usando un patrón conocido como “Self-Shunt”.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #7 – Test Class (Spanish)
Hola Amigos del Rigor! Vamos a arrancar un serie de 4 videos sobre patrones de “Unit Testing”, especialmente, para código acoplado. Aquí os dejo el primero.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #6 – Named Constructors IV (Spanish)
Hola Amigos del Rigor! Acabamos con la serie sobre “Named Constructors” con el último video de los cuatro. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #5 – Named Constructors III (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre “Named Constructors” con el tercer de los cuatro videos. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #4 – Named Constructors II (Spanish)
Hola Amigos del Rigor! Seguimos con la serie sobre “Named Constructors” con el segundo de los cuatro videos. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #3 – Named Constructors I (Spanish)
Hola Amigos del Rigor! Vamos a arrancar un serie de 4 videos sobre “Named Constructors”. También conocidos como “Semantic Constructors” o “Constructor Methods”. Aquí os dejo el primero.
He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
Rigor Talks – PHP – #2 Self-Encapsulation (Spanish)
Hola Amigos del Rigor! En este video voy a enseñar un ejemplo del concepto de “Self-Encapsulation” y la relación que guarda con las “Guard Clauses” que vimos en la Rigor Talk anterior. He creado una lista de reproducción pública con los videos que vaya publicando. La podéis encontrar aquí. Espero que os guste!
#MayTheRigorBeWithYou
#MayTheRigorBeWithYou: Presentamos las “Rigor Talks”
Amigos del rigor! Hola! Siguiendo la senda de los más grandes como CleanCoders.com o CodelyTV a.k.a. #cosaMuyFina, tengo el placer de presentaros las “Rigor Talks”. Videos cortos de entre 5 y 10 minutos, en Español, que iré publicando de forma periódica con aquellos trucos sobre desarrollo de software que veo que se repiten en las consultorías que hago por esos mundos. Los videos están hechos con todo el cariño y amor para que os resulten útiles en vuestro día a día.
A fecha de hoy, tengo 12 ya grabados que iré publicando en YouTube y en el blog de forma regular. Para muestra de los primeros videos que iremos publicando (Guard Clauses, Self-Encapsulation, Named Constructors, Test Class, Self-Shunt, Inmutabilidad y Mutant Testing). Os dejo una imagencilla ;)
Firing Domain Events in the __constructor
After my post about “Good ORMs do not call __construct a.k.a. where to fire my Domain Events”, nice discussions (and trolling) are happening in the Barcelona Engineering Slack Channel. Thanks to everyone for the feedback, ideas and concerns. You are more than welcome! The main concerns are:
- How do I fetch an Entity from ElasticSearch, using new and without firing the Event?
- How do I create stubs on the Entity that is firing the Domain Event?
- What are pros and cons of firing the Domain Event in the __constructor or in the named constructor?
So, I’ll take the original code as a starting point, and I’ll suggest different strategies to answer those questions.
Good ORMs do not call __construct a.k.a. where to fire my Domain Events
tl;dr: Entity constructor should be called once in its entire life. That’s why good ORMs don’t use constructor to reconstitute objects from the database. Good ORMs use reflection, deserialization or proxies. So, fire your Domain Events in the constructor.
Last week, I saw a presentation about going from coupled-to-framework code to a Domain-Driven Design approach in a sample application. It was a good talk. However, in my honest opinion, there were some mistakes that are important to address. In order not to troll, I have checked with the speakers to write this post ;).
One of the mistakes, that I would like to point is where a Domain Event about “a new product was created” should be trigger specifically inside the Product Entity.
Speakers were showing a “Video” Entity with a named constructor called “create”. They were calling _new _inside the named constructor and then firing the event. I mean, the Domain Event was not fired inside of the real constructor. Let’s see the code we’re talking about (the whole repository can be found here):
Awesome two days helping @Lowpost_es team
I have recently visited Valencia in order to help my friends at Lowpost. It was great and I had a lot of fun! I would like to tell you a bit about how it was.
Who is Lowpost?
Lowpost is a cool start-up that are focused in Content Marketing. Lowpost connects companies that need interesting content with authors that can write about such topics. Authors bet for the open jobs and then they deliver the content to the final customer. Everything around such process is managed by the Lowpost platform.
As a start-up, they have grown quite fast, so their code. They started with Drupal, as many start-ups, and then they added a Silex application. You know that testing is difficult, however, doing unit testing for Drupal is a challenge.
What we did?
“Domain-Driven Design in PHP” (@dddbook) is finished
Today, Keyvan, Christian and me are very happy to announce that “Domain-Driven Design in PHP” book is 100% complete. 380 pages and around 1400 readers so far.
Thanks
Thanks, thanks, thanks.
Thanks to everyone that has supported us in this project.
Thanks to Christian and Keyvan. We don’t need words to understand each other.
Thanks to our families and friends. Love is what you need to keep pushing.
Thanks to Edd Mann for helping at the beginning with the language implementation details ;).
Thanks to Matthias Noback for his suggestions and his foreword.
Thanks to Vaughn Vernon for being pragmatic and inspiring.
Thanks to Ricard Clau, Albert Casademont, Victor Guardiola and Jordi Abad for your contributions.
Thanks to Natalye Childress for non stopping asking about uppercase or lowercase. With your work, the book can be read.
Thanks to everyone that committed fixes, you are great: Jonathan Wondrusch, César Rodríguez, Yannick Voyer, Oriol González, Henry Snoek, Tom Jowitt, Sascha Schimke, Sven Herrmann, Daniel Abad, Luis Rovirosa, Luis Cordova, Raúl Ramos, Juan Maturana, Nil Portugués, Nikolay Zujev, Fernando Pradas, Raúl Araya, Neal Brooks, Hubert Béague, Aleksander Rekść, Sebastian Machuca, Nicolas Oelgart, and Marc Aube.
Event Sourcing is not a messaging integration pattern
tl;dr: If you are sending messages to RabbitMQ to communicate one application to another, you are not doing Event Sourcing. You’re just doing messaging ;)
In the last two months, I’ve seen different nice talks using DDD, CQRS or Event Sourcing in the talk title. However, after watching the content, I think there are some general misunderstandings about some of the concepts. The most important one, in my honest opinion, is calling Event Sourcing to sending messaging to other applications using a broker. Event Sourcing is not about that. Let me explain a bit more.
See you at @dpcon 2016
Working at the same time in a project and its dependencies: Composer and path type repository
With the Domain-Driven Design, Microservices and API explosion, I see more teams working in a base project, such as a Web, and integrating other private packages they develop in a different repository. For example, working on the Web and an API client for a external REST service at the same time.
For example, at @AtrapaloEng, our sales development team (checkout process, purchases, orders, payments, etc.) integrates different payment methods into the web so users, specially Latam ones, can be happier using their preferred payment methods. They create a repository for each of the new payment methods we support as a external package. Sometimes a developer in the team must work with different projects at the same time, the Web and the payment method in development.
In this scenario, one option is work on the payment package, tag, push, go to the base project and update dependencies with Composer. As you can see, it’s a bit slower, how we can improve this process? Composer to the rescue!
Rendimiento con Domain Events, Proyecciones y principios de CQRS
Cuando desarrollamos una aplicación nueva, todo va muy rapidito. Hay poco tráfico, pocas queries y si hay alguna más “dura” usamos alguna cache como Memcached o Redis. Pero a medida que agregamos más funcionalidad a una página, el número de queries a base de datos u otras infraestructuras va creciendo. Hasta que sin saber cómo, haces 300 queries, y no es broma, en la ficha de algún producto.
El problema es que estamos acostumbrados a hacer muchas queries de lectura y muy pocas de escritura en estructuras bastante normalizadas. Eso escala mal en base a nueva funcionalidad. Un buen approach en busca del máximo rendimiento es la consistencia eventual, estructuras desnormalizadas y proyecciones.
Os dejo el video de la formación de @AtrapaloEng sobre cómo el uso de Eventos de Dominio y el uso de conceptos de CQRS nos pueden ayudar enormemente a mejorar el rendimiento de nuestras aplicaciones.
Doctrine 2.5, DDD, Entities and Identities
If you’re developing applications in a Domain-Driven Design style and using Doctrine 2.5, you may be struggling with implementing your entities identities, I mean, UserId, ProductId, and so on. Embeddables are cool, but limited. Surrogates are not necessary anymore. Here are some short tips and examples about how to proceed.
Domain-Driven Design: Logging with Domain Events Webcast at @AtrapaloEng (Spanish)
Cuando trabajamos con aplicaciones DDD-style (aunque para las otras también aplica), una de las preguntas clásicas es como ejecutar tareas relacionadas con infraestructura desde las zonas más internas como Value Object o Entidades, sin violar la dependencias hacia capas superiores e incluso el SRP. Un ejemplo es logar información como acciones de usuario (tipo intento de acceso al sistema, alta de usuario, baja de usuario, etc.). El pasado Viernes, orientamos la formación de @AtrapaloEng sobre este tema. Os dejo el video y los ejercicios. Formación práctica basada en el proyecto de LastWishes con múltiples ejercicios resueltos in live coding.
Consulta sobre DDD #1: Pregunta sobre las entidades en DDD (Identidad y UUID)
A raíz del libro “Domain-Driven Design in PHP” y los videos que tengo en Youtube, semanalmente, me van llegando consultas sobre temas de relacionados. Son bastante interesantes y me gustaría compartirlas así como mis respuestas. A los autores de los mails les he pedido permiso para publicar la conversión. Las iré agregando en la medida que pueda. La primera es de Álex sobre Entidades, Identidad y UUIDs.
“Implementing Domain-Driven Design” Workshop in Barcelona
Since 2012 and after two years reading and working with Domain-Driven Design approaches, in 2014, Christian (@theUniC) and me went to Berlin to get trained by Vaughn Vernon, author of “Implementing Domain-Driven Design” book. The training was fantastic, all the concepts that were going around on their minds up to that moment, got stuck into the ground in the 3 days IDDD workshop. However, they were the only two PHP developers there in a room full of Java and .NET. That was quite funny.
Domain-Driven Design: Code Structure and Application Services Webcast at @AtrapaloEng (Spanish)
Siguiendo con la formación de DDD en Atrápalo, os dejo la sesión de formación sobre Code Structure and Application Services. Que la disfrutéis.
Domain-Driven Design: Domain Events and BC Integration Webcast at @AtrapaloEng (Spanish)
Siguiendo con la formación de DDD en Atrápalo, os dejo la sesión de formación sobre Domain Events y BC Integration. Que la disfrutéis.
Domain-Driven Design: Bounded Context Integration (Spanish)
Os dejo el video de la charla que impartí el pasado 25 de Octubre de 2014 en la Barcelona Software Craftsmanship.
Domain-Driven Design: Entities and Value Objects Webcast at @AtrapaloEng (Spanish)
Siguiendo con las formaciones de DDD de Atrápalo, os dejo el video sobre Entities y Value Objects.
Domain-Driven Design: Aggregates Webcast at @AtrapaloEng (Spanish)
En Atrápalo, estamos haciendo formación semanal sobre DDD. Estoy grabando todos los screencast y los iré publicando semana a semana. El primero sobre Strategical no lo pudimos grabar pero gran parte del contenido lo podéis encontrar en la sesión que grabé en la Monthly Talk en Octubre de 2014. A continuación, os dejo la sesión de formación sobre Aggregates, al final hay discusión sobre SOLID, especialmente SRP. Que la disfrutéis.
Tactical Domain-Driven Design Screencast at PHPBarcelona (Spanish)
Os dejo el video sobre DDD Tactical Design que hice en la Monthly Talk de PHPBarcelona. Nos dio tiempo a charlar un poco de estrategia, ver los Value Objects, Entities y algo de Repositories. La charla está basada en el libro que Christian, Keyvan y yo estamos escribiendo en leanpub: “Domain-Driven Design with PHP by Examples”. En los últimos 30 minutos hablo sobre cómo estamos gestionando la Integración Continua en Atrápalo.