Máster en arquitectura distribuida

El próximo 26 de Noviembre (Barcelona) y 10 de Diciembre (Madrid) voy a realizar un máster de 4 días sobre arquitectura distribuida, en el que se van a tratar temas como:

  • Domain Driven Design / SOA
  • CQRS
  • Mensajería con NServiceBus.

Es un curso creado por Udi Dahan y que se va a realizar por primera vez en España después de varios años de éxito en Londres y USA.

Para ver temario, fechas y precios, podéis consultar la siguiente web: http://masterad.techdencias.net

Colaboran:

 IASA-Spain

Read More

Poor Man’s CQRS – BDD con MSpec

[El artículo forma parte de una serie de artículos: http://www.serrate.es/2011/11/22/poor-mans-cqrs/]

En el proyecto de Testing se ha utilizado Machine.Specifications (MSpec) para realizar Behavior Driven Development (BDD).

MSpec utiliza las cláusulas Establish/Because/It equivalente a Given/When/Then disponible en otros frameworks como SpecFlow.

La forma de uso seria la siguiente:

  • Establish: Se usa para establecer el estado inicial.
  • Because: Definimos la acción que vamos a testear.
  • It: Comprobamos que el resultado es el esperado.

(more…)

Read More

Poor Man’s CQRS – Domain Layer

[El artículo forma parte de una serie de artículos: http://www.serrate.es/2011/11/22/poor-mans-cqrs/]

Empezaremos detallando la parte principal de la aplicación: la capa de dominio. Aunque el ejemplo que nos ocupa consta simplemente de dos míseras clases, es importante que interioricemos algunos conceptos.

Diseñar un modelo de dominio es una tarea altamente compleja: definir las entidades que formaran parte de los agregados, el límite de éstos, qué entidad será el agregado raíz, distinguir value objects, etc. y, curiosamente, es la parte que menor relación tiene con CQRS.

Como siempre, la recomendación principal que puedo dar es la de leerse y empaparse del libro Domain-Driven Design de Eric Evans.

(more…)

Read More

Poor Man’s CQRS

[Url del proyecto: https://github.com/mserrate/PoorMansCQRS]

Muchas veces cuando se habla de Command-Query Responsibility Segregation (CQRS) empiezan a surgir conceptos tales como: Event Sourcing, 2-Phase Commit, Snapshots, mensajería asíncrona, eventual consistency y multitud más que hacen que mucha gente piense que CQRS es una arquitectura compleja y que solo se puede utilizar para desarrollar aplicaciones tipo Amazon, Twitter y Facebook (vamos, los proyectos que nos surgen cada día…).

Por el contrario, soy de la opinión de que el uso de este patrón nos permite implementar de forma exitosa una aplicación basada en Domain-Driven Design (DDD). Y es que no se entiende CQRS sin DDD.
Es decir, no hace falta implementar Amazon para utilizar DDD y CQRS pero tampoco vayamos a implementarlo en la web de la panadería de nuestro cuñado en Villaconejo del Monte. (more…)

Read More

CQRS: Evento en SecondNug

El próximo día 5 de mayo voy a estar con los chicos de SecondNug realizando un evento acerca de Command-Query Responsibility Segregation (CQRS) en el que hablaremos de:

  • Domain-Driven Design
  • Problemáticas en aplicaciones típicas n-layer
  • CQRS y conceptos: Commands, Events, Task based UI, etc.
  • Event Sourcing
  • Demo

Si queréis asistir sólo tenéis que registraros en el siguiente enlace:

Evento CQRS
¡Nos oímos en el evento!

Read More