Ddd PATTERNS JAVA PLATFORM @AlfredoCasado.

Slides:



Advertisements
Presentaciones similares
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Advertisements

Las aplicaciones requieren datos persistentes
Proyecto Call Center Taller de desarrollo de proyectos II
Metodologías ágiles.
Taller de Desarrollo de Proyectos I
TECNICATURA UNIVERSITARIA EN INFORMATICA
Esquema de Mapeo de Base de Datos Relacionales a Objetos
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
PATRON DAO Data Access Object (OBJETO DE ACCESO A DATOS)
Liderazgo en Equipos Virtuales
Conexión a Base de Datos con NetBeans
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Índice 1. Introducción, objetivos y justificación del proyecto.
Musitec.
Módulo Local. Logo: Correo Electrónico: Slogan: Producir Software de alto nivel Misión: Desarrollar software de calidad para la satisfacción.
Ingeniería del Software
Experiencia de un líder de desarrollo J2EE
JAVA Persistence API (JPA)
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a Base de Datos Conceptos básicos.
Patrones de diseño OO Gang of Four (GoF)
Ingeniería de Software Orientada a Objetos
1er. Comité de Usuarios. Historia ¿Qué hay de nuevo? No más cygwin. Exportación granular: trabajo distribuído. Compilación de metadatos. Manejo.
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
Trabajo fin de carrera UOC José María González Vázquez Enero 2011.
Gestor de torneos de Ajedrez Jesús Cózar Campanario.
STARUML.
Introducción a TDD. Enfoque de la Charla Presentar un ejemplo de principio a fin de una funcionalidad de un proyecto. Sin profundizar en las herramientas.
UOC José Mª Casablanca González. Índice Introducción Objetivos generales y específicos Problema y posibles soluciones Características y definición.
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
ANALISIS Y DISEÑO O.O. (LCD )
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
DISEÑO DE SOFTWARE 1ª. Parte
SPRING MVC.
Patrones GRASP.
Presentado por: Ing. Manuel Rodríguez Coria. Software Freedom Day 26 de Septiembre de 2009Ing. Manuel Rodríguez Coria Quien Soy? Ing.
Tempore. Equipo de Trabajo Tutor: Guillermo Pantaleo Equipo: Juan Pablo Gigante Ludmila Rinaudo Nicolás García.
Titulación por certificaciones Java: Oracle Certified Expert, Java EE 6 Web Component Developer Oracle Certified Expert, Java EE 6 Java Persistence API.
Mock objects Rosemary Torrico Bascopé. Introducción Las Pruebas de unidad han sido aceptadas como la “mejor práctica” para el desarrollo de software.
Mapeo Objeto – Relacional JPA – Java Persistence Api
Frameworks de Persistencia Java Prof. Ing. Esteban Ramírez
Spring Framework. Contenedor ligero de aplicaciones
Eguana Reports Servidor de Reportes basado en Tecnología Java y XML Presentado por: Roy Cox S. Fernando Pérez M. José Pérez S.
Arquitectura para crear Soluciones Conectadas Eduardo Mangarelli Gerente de Socios Estratégicos Wilson Pais Gerente de.NET Microsoft Uruguay.
Proyecto de Carrera Tecnólogo en Informática 2012 Grupo 02 Luis Conde Juan Urtiaga Jorge Melnik Álvaro Vallvé Prof. Ing. Dra. Andrea Delgado.
Curso de Java y Aplicaciones Web Facultad Politécnica – U.N.A. Ing. Esteban Ramírez Persistencia Java.
Juan Timoteo Ponce Ortiz
La Web 2.0 es la transición que se ha dado de aplicaciones tradicionales hacia aplicaciones que funcionan a través del web enfocadas al usuario final.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: material asignatura CS169,Software Engineering,
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Eugenia Parodi Eugenia Parodi Lazaro Ruiz Lazaro Ruiz Juan Achucarro Juan Achucarro Sebastian Castellanos Sebastian Castellanos.
Valentina Madrid Hincapié. Verónica Castrillón. Estefanía Posada. Daniela Tamayo.
© Softtek Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray
ADQUIRIR E IMPLEMENTAR
Guice Java Injection Framework
 Logo:  Correo Electrónico:  Slogan: Producir Software de alto nivel  Misión: Desarrollar software de calidad para la satisfacción.
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
Capítulo 12. Tecnología y herramientas. Ricardo García Mataix
J2ME J2SE wifi Proveedor Telefonía celular Encuestador móvil Base de datos Servlet WEB APP JSON Terminal usuario.
Gestión de proyectos fin de carrera
Manejá tus tiempos Facultad de Ingeniería de la Universidad de Buenos Aires – Marzo 2012.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Contar con las licencias que avalen el uso del software. Imposibilidad de copia y modificación. Contar con los manuales y la asesoría directamente.
Febrero 2016 FRAMEWORKS DE DESARROLLO/LENGUAJES DE PROGRAMACIÓN AREA DE ARQUITECTURAS Dirección de Ingeniería, Soporte a Gestión de Aplicaciones y Centros.
Ingeniería del Software Avanzada
Softlogia S.R.L. Formación de Recursos Humanos Spring Instructor: Martin R. Baspineiro.
Transcripción de la presentación:

ddd PATTERNS JAVA PLATFORM @AlfredoCasado

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

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

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

Modelo anémico

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

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

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

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

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

falsa separación entre capas

Posible solución

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

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

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

Mantener el ritmo de desarrollo Anémico DDD Productividad Tiempo

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.

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.