Especificaciones
Si todo va bien y delegamos la complejidad de persistir la entidad a un ORM, podemos darle una complejidad de 2. Si decidimos implementar nuestra propia estrategia de Persistence, la complejidad se nos puede elevar. Solemos decir que su idea principal es considerarlo el archivero del dominio.
Como características más específicas, comentar que son utilizados por los Handlers, y en ocasiones algunos Application / Domain services, para guardar o recuperar la información del Domain.
Se relaciona con Command handlers, Query handlers y en ocasiones con Application services o Domain services.
Como observaciones, es importante estar abierto a otras estrategias para saber cómo se utiliza esta carta. Si no se ajusta a vuestra forma de verlo en el equipo, se cambia. La carta, como instrumento de comunicación, debe reflejar vuestro estándar.
|
|
Recordad que el concepto de complejidad no significa directamente cantidad de trabajo. Son cosas diferentes. Hacer que un ORM funcione bien requiere de ciertos pasos y configuraciones. Pero en ese caso concreto, no es una cuestión de complejidad ciclomática.
Hay otras estrategias para usar la carta Persistence, como pasarle la carta a cada función del Aggregate root que modifica su estado para que se persista cada vez que cambia. Dejando la tarea de guardarlo definitivamente en la transacción, o decidir que esa actividad recae en Domain services, pero en este caso vamos a apostar por dejárselo a los Handlers.
|
|