SlideShare a Scribd company logo
1 of 45
Desacoplar la lógica de negocio del framework
Sobre mí
Manel López Torrent
Ingeniero en informática
Web Developer
@mloptor
malotor@gmail.com
www.develclub.es
mmm.. algo sobre
negocios
¿Tienes idea de
qué va la peli?
#project_wishlist
Mantenibilidad
Escalabilidad
Fiabilidad
Objetos del negocio
Objetos o entidades abstractas que conforman un
sistema del mundo real.
UniversidadPeriódico
Profesor
Alumno Asignatura
DepartamentoEditor
Periodista
Noticia
Anuncio
Objetos del negocio
Reglas de negocio
Las reglas de negocio son aquellas que nos dicen cómo
debe comportarse un sistema del mundo real.
Definen las relaciones , procesos y restricciones entre
los objetos del dominio.
Reglas de negocio
Modelo del dominio
Objetos del dominio
+
Relaciones
Lógica de negocio
La parte de nuestro software que
codifica las reglas de negocio y
mantiene el modelo del dominio
Lógica de negocio
Lógica de
negocio
Modelo - Vista - Controlador
Vista
Petición
Datos
Controlador
Modelo
Modelo - Vista - Controlador
Vista
Petición
Datos
Controlador
Aplica las
reglas de
negocio
Modelo
Modelo - Vista - Controlador
Vista
Petición
Datos
Controlador
Aplica las
reglas de
negocio
Modelo
Persistencia
de datos
Modelo - Vista - Controlador
Vista
Petición
Datos
Controlador
Aplica las
reglas de
negocio
Modelo
Persistencia
de datos
Respuesta
Modelo - Vista - Controlador
Vista
Petición
Datos
Controlador
Aplica las
reglas de
negocio
Modelo
Persistencia
de datos
Respuesta
Lógica de
negocio
Problema MVC
Alto nivel de acoplamiento
Difícil testeo
No SRP
Acceso HTTP
Hi! I'm your
controller
¿Solución?
Controlador
Lógica de
negocio
?
Arquitectura hexagonal
Arquitectura de software
Alistair CockBurn
AKA “Ports and adapters”
Lógica de
negocio
Framework
Puertos / Adaptadores
Adaptadores
Puertos
Puertos / Adaptadores
Puertos / Adaptadores
Puertos / Adaptadores
Puertos / Adaptadores
Factorías
Aislan los objetos del dominio
Capas y fronteras
Capa Infraestructura Aplicación Dominio
Responsabilidad Input/Output
Persistencia
Modela casos de
uso
Modelo de dominio
Elementos Frameworks Interfaces
Repositorios
Factorías
Orquestadores
Entidades
Objetos valor
Eventos de dominio
YOU SHALL
NOT PASS!!!!
Fronteras
Ventajas
Lógica
de
negocio
Agnóstica
Ventajas
Lógica
de
negocio
Fácil testeo
Ventajas
Lógica
de
negocio
Cambios aislados
+ refactoring
- deuda técnica
Ventajas
Adaptadores
intercambiables
Ventajas
Independiente
Dispositivos
Conclusión
+ Escalabilidad
+ Mantenibilidad
+ fiabilidad
+ Complejidad
- Rapidez
Shopping Cart
1. CLIENTE Quiero ver un listado de productos para elegir lo que quiero comprar
2. CLIENTE Quiero ser capaz de elegir el producto que quiero comprar y añadirlo a mi cesta de la
compra
a. Si un producto está ya en la cesta incrementaremos la cantidad
3. CLIENTE Quiero ser capaz de eliminar productos de mi cesta si he cambiado de opinión
4. CLIENTE Quero poder ver el coste total de todos los productos de mi cesta en todo momento.
5. CLIENTE Quiero que se guarde mi cesta de la compra por si quiero pensarmelo mejor
SHOW ME
THE
CODE!!!
Shopping Cart
Shopping Cart Business Logic
https://github.com/malotor/shoppingcart
Symfony 2
https://github.com/malotor/cupon_shoppingcart
ShoppingCartBundle
https://github.com/malotor/ShoppingCartBundle
Referencias
http://alistair.cockburn.us/Hexagonal+architecture
http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-
architecture.html
http://culttt.com/2014/12/31/hexagonal-architecture/
http://userscape.com/laracon/2014/chrisfidao.html
http://fideloper.com/hexagonal-architecture
http://www.slideshare.net/carlosbuenosvinos/hexagonal-
architecture-php-barcelona
Preguntas
There are no
dumb
questions
#ff @David_Baltha @circun4
@josedrac @helenatxu
@Raymond7 thx por el feedback
Gracias a todos

More Related Content

What's hot

38481889 lab-dwh-sql2005
38481889 lab-dwh-sql200538481889 lab-dwh-sql2005
38481889 lab-dwh-sql2005
cristhian
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
Don Demcsak
 

What's hot (18)

Sentiment Analysis with KNIME Analytics Platform
Sentiment Analysis with KNIME Analytics PlatformSentiment Analysis with KNIME Analytics Platform
Sentiment Analysis with KNIME Analytics Platform
 
What is Talend | Talend Tutorial for Beginners | Talend Online Training | Edu...
What is Talend | Talend Tutorial for Beginners | Talend Online Training | Edu...What is Talend | Talend Tutorial for Beginners | Talend Online Training | Edu...
What is Talend | Talend Tutorial for Beginners | Talend Online Training | Edu...
 
38481889 lab-dwh-sql2005
38481889 lab-dwh-sql200538481889 lab-dwh-sql2005
38481889 lab-dwh-sql2005
 
Orange Data Mining & Data Visualization Tool
Orange Data Mining & Data Visualization ToolOrange Data Mining & Data Visualization Tool
Orange Data Mining & Data Visualization Tool
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
 
Improve Data Protection and Compliance with UI-Level Logging and Masking
Improve Data Protection and Compliance with UI-Level Logging and MaskingImprove Data Protection and Compliance with UI-Level Logging and Masking
Improve Data Protection and Compliance with UI-Level Logging and Masking
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
 
ERP systems
ERP systemsERP systems
ERP systems
 
Mapa conceptual mineria de datos 1
Mapa conceptual mineria de datos 1Mapa conceptual mineria de datos 1
Mapa conceptual mineria de datos 1
 
ERP MARKET
ERP MARKETERP MARKET
ERP MARKET
 
Data Ops:從實驗室走進生產線, 談談怎麼和資料科學家合作
Data Ops:從實驗室走進生產線, 談談怎麼和資料科學家合作Data Ops:從實驗室走進生產線, 談談怎麼和資料科學家合作
Data Ops:從實驗室走進生產線, 談談怎麼和資料科學家合作
 
Odoo, ERP libre.
Odoo, ERP libre. Odoo, ERP libre.
Odoo, ERP libre.
 
Sistema de recursos empresariales erp
Sistema de recursos empresariales erpSistema de recursos empresariales erp
Sistema de recursos empresariales erp
 
SAP ABAP OVERVIEW
SAP ABAP OVERVIEWSAP ABAP OVERVIEW
SAP ABAP OVERVIEW
 
Query Views Transformations (QVT)
Query Views Transformations (QVT)Query Views Transformations (QVT)
Query Views Transformations (QVT)
 
PostgreSQL
PostgreSQL PostgreSQL
PostgreSQL
 
Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)
 
RapidMiner: Introduction To Rapid Miner
RapidMiner: Introduction To Rapid MinerRapidMiner: Introduction To Rapid Miner
RapidMiner: Introduction To Rapid Miner
 

Similar to Desacoplar la lógica de negocio del framework

Similar to Desacoplar la lógica de negocio del framework (20)

Oracle SOA Suite
Oracle SOA SuiteOracle SOA Suite
Oracle SOA Suite
 
Presentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT CampPresentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT Camp
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Anteproyecto salazar bolivar
Anteproyecto salazar bolivarAnteproyecto salazar bolivar
Anteproyecto salazar bolivar
 
Joomla
JoomlaJoomla
Joomla
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de software
 
UBERCART UTVT E4
UBERCART UTVT E4UBERCART UTVT E4
UBERCART UTVT E4
 
Salesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshopSalesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshop
 
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTAPROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
 
11. corticon
11. corticon11. corticon
11. corticon
 
Erp
ErpErp
Erp
 
Interoperabilidad SOA ESB BRE CEP y BPM
Interoperabilidad SOA ESB BRE CEP y BPMInteroperabilidad SOA ESB BRE CEP y BPM
Interoperabilidad SOA ESB BRE CEP y BPM
 
Presentacion programacion avanzada
Presentacion programacion avanzadaPresentacion programacion avanzada
Presentacion programacion avanzada
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
 
Diapositivas de Ventas e Inventario.pptx
Diapositivas de Ventas e Inventario.pptxDiapositivas de Ventas e Inventario.pptx
Diapositivas de Ventas e Inventario.pptx
 
Caso de Estudio Floter.com: Congreso SEO Profesional 2016
Caso de Estudio Floter.com: Congreso SEO Profesional 2016Caso de Estudio Floter.com: Congreso SEO Profesional 2016
Caso de Estudio Floter.com: Congreso SEO Profesional 2016
 
Recuperación de Información sobre Modelos de Dominio - Presentación JAIIO
Recuperación de Información sobre Modelos de Dominio - Presentación JAIIORecuperación de Información sobre Modelos de Dominio - Presentación JAIIO
Recuperación de Información sobre Modelos de Dominio - Presentación JAIIO
 
Openbravo, ERP per a pimes
Openbravo, ERP per a pimesOpenbravo, ERP per a pimes
Openbravo, ERP per a pimes
 
Tecnitek Presentacion Corporativa
Tecnitek Presentacion CorporativaTecnitek Presentacion Corporativa
Tecnitek Presentacion Corporativa
 

Recently uploaded

Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
GuillermoBarquero7
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
EncomiendasElSherpa
 

Recently uploaded (6)

Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 

Desacoplar la lógica de negocio del framework