DDD, CQRS, event sourcing, Como comenzar a usar esto que parece ser el futuro ahora en el presente?

245 views
Skip to first unread message

Nestor

unread,
Jan 20, 2014, 1:37:12 PM1/20/14
to altnet-...@googlegroups.com

Que tal amigos de Alt Net.

Hace rato que no posteo más en la comunidad, pero desde el año pasado que estoy a full con .NET. Me considero un principiante en orientación a objetos, pero ya tengo mi camino recorrido. Vengo de años de programar en estructurado.

 

Bueno luego de una brevísima reseña para ubicarlos más o menos en qué contexto profesional estoy ahora comenzando un proyecto digamos mediano, lo clásico,  Stock de máquinas, operaciones, facturación, análisis de créditos, etc.

 

Ahora estoy en fase de decidir que arquitectura usar y después de meses de estar viendo videos en PLURALSING (lástima que no hay una versión hispana jeje), viendo lo que es el SOA, EF, MVC5,  y peleándome con AJAX. Me encuentro con DDD (justo cuando SOA parecía lo máximo) y mientras voy hurgando me llego a interesar, hasta que me encontré también con CQRS, Event Sourcing, etc.  Todo estaba muy bien hasta que me doy cuento de que la curva de aprendizaje es más o menos alta, me va a llevar de nuevo algunos meses y que tengo que OLVIDARME del CRUD y de depender de mi tan amada DB Relacional, ese si fue un duro golpe para mí.

 

Por lo tango dije, y porque no les pregunto a los que saben a los GURUS de .NET, y aquí tienen esta nueva estrada. Así que si me lo permiten quisiera hacerles unas preguntitas más filosóficas que técnicas.

 

1.     Vale la pena en un proyecto mediano(tendiendo a grande) cambiar del paradigma CRUD (no sé si me expreso bien) para ir al DDD, CQRS y Event Sourcing?

2.     Están las bases de datos relacionales dejando de ser la panacea de los datos?

 

Como les dije aunque ya hice varias cosas en OOP todavía no me considero un profesional, así que ustedes dirán si vale le pena responderme o pasarme links. Sin embargo, help me please!! (es que estoy estudiando ingles jeje), necesito de su orientación.

Desde ya muchas gracias y muchos éxitos.


Saludos.

Nestor Rodriguez

Alejandro Miralles

unread,
Jan 21, 2014, 11:55:38 AM1/21/14
to altnet-...@googlegroups.com

Hola Nestor. Habria que ver el requerimiento completo. En general DDD suele ser la opcion a seguir en aplicaciones donde el negocio es realmente complejo. Si tu aplicacion se basa en semanticas CRUD, la combinacion EF/MVC 5 va como pinia! (y es muy similar al campeón de esa arena ruby on rails). Podrias utilizar DDD en proyectos medianos/chicos, pero si no tenes experiencia con esa técnica, desde el punto de vista del proyecto, probablemente no valga la pena (Si, como experiencia personal, pero eso es otro tema ;))

 

Con respecto a los recursos para aprender mas sobre DDD, CQRS, SOA, etc… Creo Pluralsight es el lugar indicado. Prácticamente todos los instructores la rompen (conozco a un par en persona y son realmente expertos de la industria).

 

Las bases de datos dejaron de ser la panacea de datos? Depende. En ambientes corporativos, como por ejemplo, bancos, financieras, compañías de energía y demás, para nada. En otros sectores las bases NoSQL van ganando terreno, pero creo que falta un buen rato hasta que logren desplazar a los RDBMS (al menos en aplicaciones de negocios).

 

Por ultimo, creo que vale la pena aclarar que por ejemplo SOA y CQRS no son conceptos excluyentes, podrias utilizar una combinación de ambos y obtener lo mejor de los dos mundos.

 

Saludos, Ale Miralles

http://amiralles.net

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Nestor Javier Rodriguez

unread,
Jan 21, 2014, 2:28:39 PM1/21/14
to altnet-...@googlegroups.com
Gracias por tus comentarios Ale Miralles.
Los tendré en cuenta por lo que por ahora me alejare del DDD, pero volveré a mirarlo cuando salga el curso de DDD en pluralsing jeje, que a propósito esta tardando mucho en salir a pesar que es el mas votado.

Atte.
Nestor Rodriguez

Walter Poch

unread,
Jan 21, 2014, 2:50:55 PM1/21/14
to altnet-...@googlegroups.com
Hola Nestor,

Yo trato de mantener todo lo más simple posible, pero que funcione. Como decía Einstein: "everything must be made as simple as possible, but not simpler."

Me ha pasado de intentar usar X o Y, forzar cosas para cumplir con eso, y terminaba haciendo de más, tardando más y agregando fricción al desarrollo.

Ahora bien, si tengo un dominio complicado uso DDD y con test de integración (que peguen contra el storage, al que le hago un seed en cada test). Si es una app con muchos datos, voy por algo más tipo CRUD (o trato de no hacerla directamente, son muy aburridas jaja).

Bases de datos, trabajo en un banco así que me siento confiado en usar RDBMS; pero para proyectos personales o no tan críticos estoy viendo de usar NoSQL si me brinda alguna ayuda, no sólo porque están "de moda".

No se si trabajas con equipos de desarrollo, pero también tengo en cuenta quién va a mantener la aplicación o ayudarme a desarrollarla. Hay conceptos que no son simples, y no podes esperar que todo el equipo aprenda NodeJs, Angular, Mongo, JS, Less, etc... para poder modificar una app. Si hay mucha gente involucrada, o es grande el proyecto trato de ir con las recomendaciones de MS MVC + EF + CRUD, que son cosas que casi todos entienden rápido, y no generan tanto rechazo.

Bueno me pasé un poco escribiendo,

Éxitos en tu proyecto.
Saludos,

Walter G. Poch
--------------------------------------------
Cell: +54 (9 341) 6836871
walte...@gmail.com

Alejandro Miralles

unread,
Jan 21, 2014, 2:52:47 PM1/21/14
to altnet-...@googlegroups.com

No es un curso completo sobre DDD, pero…

http://pluralsight.com/training/courses/TableOfContents?courseName=cqrs-theory-practice&highlight=michael-perry_cqrs-m3-cqrs*0,5,6#cqrs-m3-cqrs

 

Otro recurso que podrias chequear, es este curso online gratuito de Greg Young (el padre de CQRS) http://www.viddler.com/v/dc528842

De nuevo, no es un curso completo sobre DDD, pero cubre varios aspectos relacionados con el tema.

Walter Poch

unread,
Jan 21, 2014, 3:08:23 PM1/21/14
to altnet-...@googlegroups.com
Sobre DDD hay un minilibro corto, pero está bueno de InfoQ: http://www.infoq.com/minibooks/domain-driven-design-quickly 

Julian Dominguez

unread,
Jan 23, 2014, 2:35:01 PM1/23/14
to altnet-...@googlegroups.com
Estoy de acuerdo con lo que ya dijeron. CQRS y Event Sourcing tienen una curva grande de aprendizaje, así que si es la 1ra vez que vas a hacer algo, fijate que el proyecto lo amerite, sino con CRUD lo hacés mucho más fácil.
Por otro lado, tuve experiencia haciendo proyectos con CQRS en la capa de negocios, pero con RDBMS para persistir (y sin usar EventSourcing), y me funcionó muy bien incluso en proyectos más chicos. Bajando a tierra, el input model en una app con MVC puede mapear bien a los comandos de CQRS, pero el modelo que se utiliza para renderear la View, no necesariamente es igual a este input model... por lo que separar el modelo de escritura del de lectura es útil, incluso si luego los 2 terminan yendo a las mismas tablas en tu base de datos.

También tienes que considerar quién estará encargado de mantener el proyecto... es algo que quieres hacer y nunca más hacer actualizaciones grandes, o el negocio no cambia muy seguido, y prefieres solo bug fixes con gente más junior? CRUD será más fácil para ellos.

Si te interesa, en este proyecto de patterns & practices, documentamos todos el aprendizaje a medida que fuimos aprendiendo CQRS en un equipo que no tenía experiencia previa en él: http://aka.ms/cqrs

También hace un tiempo presenté aquí en una VAN sobre el proyecto ese, por si te interesa algo en español. No es tan bueno como los cursos de pluralsight, pero espero que sea útil al menos: http://www.altnethispano.org/wiki/van-2012-10-27-cqrs-y-event-sourcing.ashx

Aquí hay algunas de nuestras lecciones aprendidas sobre CQRS, incluidas algunas razones que ameritarían el uso de CQRS en un proyecto: http://msdn.microsoft.com/en-us/library/jj591568.aspx

Y por último, también recomiendo los videos de Greg Young, en especial hay algunos seminarios que son 2 videos de 4 o 5 horas cada uno... largos pero valen la pena.

Saludos!
Julian


2014/1/21 Walter Poch <walte...@gmail.com>

Kiquenet

unread,
Nov 28, 2025, 6:09:36 PM (3 days ago) Nov 28
to AltNet-Hispano
Estado del arte actual... ??
Reply all
Reply to author
Forward
0 new messages