La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ddd PATTERNS JAVA PLATFORM @AlfredoCasado.

Presentaciones similares


Presentación del tema: "Ddd PATTERNS JAVA PLATFORM @AlfredoCasado."— Transcripción de la presentación:

1 ddd PATTERNS JAVA PLATFORM @AlfredoCasado

2 ¿De que vamos ha hablar? Presentación del modelo
Ejemplo de implementación spring-hibernate anemico Ejemplo de implementación spring-hibernate DDD

3 MODELO: CARTERAS DE INVERSIÓN
Accion Unidades Cotización Entidad Total IBM 100 14 bankinter 1400 Yahoo 10 12 bank of America 120 TOTAL: 1520

4

5

6

7 implementación Tecnologías utilizadas java 1.6 maven 2 spring 3.0
hibernate 3.5 / API JPA 2.0 JUnit 4.10

8 Modelo anémico

9 detalles de persistencia en el modelo
Anotaciones confusas ¡no es una entidad! detalles de persistencia en el modelo

10 nos saltamos la ley de demeter
Acoplamiento nos saltamos la ley de demeter

11 Reparto de responsabilidades
No seguimos el patrón experto (GRASP) No seguimos single responsability (SOLID)

12 ENTIDADES SIN COLABORADORES
El ORM instancia mis objetos de dominio. ¿Como le inyecto el actualizador de cotizaciones?

13 falsa separación entre capas
¿persistence? ¿esto no era el modelo? “AOP magic” (con cgi-lib o DynamicProxy)

14 falsa separación entre capas

15 Posible solución

16

17 estructuras de datos Son “sólo” estructuras de datos.
JPA impide poner “public”.

18 Las entidades tienen colaboradores
volvemos a controlar el proceso de instanciación RepositorioEF

19 Separación más efectiva de responsabilidades
Cartera Inversión Acción EntidadFinanciera

20 Mantener el ritmo de desarrollo
Anémico DDD Productividad Tiempo

21 Hay otras opciones Inyectar colaboradores “a mano” via setters
Inyectar con filtros en la construcción de objetos de hibernate Inyectar utilizando AOP con spring No usar hibernate, no usar spring Google guice es una alternativa seria a spring. JDBC, ibatis o queryDSL son alternativas serias a hibernate.

22 Conclusiones Poner los frameworks a nuestro servicio en lugar de estar nosotros al suyo Nos obsesionamos con frameworks técnicos y se nos olvida lo básico (OO, patrones, GRASP, SOLID) Usamos frameworks que facilitan lo más sencillo (hacer un CRUD) a costa de dificultar lo realmente complejo: construir un buen dominio. El desarrollo de software no es construir la versión 1.0 , normalmente consiste en pasar de la N a la N+1.


Descargar ppt "Ddd PATTERNS JAVA PLATFORM @AlfredoCasado."

Presentaciones similares


Anuncios Google