SlideShare una empresa de Scribd logo
1 de 15
Clean
Architecture
Germán González
@taichi2000
¿Qué es una arquitectura?
● ¿Herramientas?
– IDEs
– Bases de Datos
● ¿Lenguajes de programación?
● ¿Bibliotecas?
– Hibernate
– Rest clients
Una arquitectura es:
● Como un plano
– De una casa
– De un hospital
– De una biblioteca
¿Qué hace esta aplicación?
Intento de definición
Arquitectura:
“Son aquellas decisiones que te hubiera
gustado haber tomado de una forma distinta.
Sobre todo a medida que más tiempo has
pasado desarrollando el proyecto”
Arquitectura:
“Es la expresión de la intención, de lo que el
sistema realiza”
https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
Propósito
● Ser independiente de frameworks
● Testeable
● Independiente de la UI
● Independiente de la base de datos
● Independiente de cualquier agente externo
Dependency Rule
● Los círculos internos son políticas
● Los círculos externos son mecanismos
● Las dependencias de código fuente apuntan
hacia adentro
– Los elementos internos no conocen a los de fuera
– Se puede usar inyección de dependencias
● Entities
– Reglas de negocio transversales
– Business Objects
● Use cases
– Reglas de negocio específicas de la aplicación
● Interface adapters
– Presenters, Controllers, Gateways
● Frameworks y Drivers
– Spring, Android, Web frameworks
Pros y Contras
● Contra
– Mucho código
● Interfaces
● DTOs
● Pros
– Fácil de testear
– Fácil de entender
– Control de frameworks y herramientas
MVC no es una arquitectura
Es un patrón de Interfaz de Usuario
● Separa las representaciones internas de
información de las formas en que dicha
información es presentada al usuario (y
recibida de éste)
Micro-services tampoco
● Es un mecanismo de despliegue
Gracias
“The only way to go fast is to go well”
Uncle Bob Martin

Más contenido relacionado

Similar a Clean architecture - Lightning talk - Julio 2017

Barra libre en proyectos de software... pero sólo hasta media noche
Barra libre en proyectos de software... pero sólo hasta media noche Barra libre en proyectos de software... pero sólo hasta media noche
Barra libre en proyectos de software... pero sólo hasta media noche Sergio Fernández
 
Comprensión de los Requerimientos
Comprensión de los Requerimientos Comprensión de los Requerimientos
Comprensión de los Requerimientos Mauricio Blandon
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demoniosAndrés Londoño
 
Software libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasSoftware libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasJuan Eladio Sánchez Rosas
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasIván Campaña Naranjo
 
Software Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingSoftware Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingAndrés Londoño
 
Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012oswc2012
 
Tecnologías de hoy y del futuro
Tecnologías de hoy y del futuroTecnologías de hoy y del futuro
Tecnologías de hoy y del futuroFernando Parra
 
PROYECTOS INFORMÁTICOS
PROYECTOS INFORMÁTICOS PROYECTOS INFORMÁTICOS
PROYECTOS INFORMÁTICOS RandhallSoto
 
Pablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPHP Vigo
 
unidad 4..
unidad 4..unidad 4..
unidad 4..johanagb
 
1 El Paradigma De OrientacióN A Objetos
1  El Paradigma De OrientacióN A Objetos1  El Paradigma De OrientacióN A Objetos
1 El Paradigma De OrientacióN A ObjetosHectorMamani
 
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...eccutpl
 
Un vistazo al mundo Drupal
Un vistazo al mundo DrupalUn vistazo al mundo Drupal
Un vistazo al mundo DrupalFederico Antón
 
Migración a Software Libre
Migración a Software LibreMigración a Software Libre
Migración a Software LibreEnrique Zanardi
 

Similar a Clean architecture - Lightning talk - Julio 2017 (20)

Barra libre en proyectos de software... pero sólo hasta media noche
Barra libre en proyectos de software... pero sólo hasta media noche Barra libre en proyectos de software... pero sólo hasta media noche
Barra libre en proyectos de software... pero sólo hasta media noche
 
Comprensión de los Requerimientos
Comprensión de los Requerimientos Comprensión de los Requerimientos
Comprensión de los Requerimientos
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demonios
 
Tools elicitation
Tools elicitationTools elicitation
Tools elicitation
 
Software libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasSoftware libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemas
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresas
 
Software Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingSoftware Architecture - Neobit Consulting
Software Architecture - Neobit Consulting
 
Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Charla - MVP con django (beta beers)
Charla - MVP con django (beta beers)Charla - MVP con django (beta beers)
Charla - MVP con django (beta beers)
 
Tecnologías de hoy y del futuro
Tecnologías de hoy y del futuroTecnologías de hoy y del futuro
Tecnologías de hoy y del futuro
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
PROYECTOS INFORMÁTICOS
PROYECTOS INFORMÁTICOS PROYECTOS INFORMÁTICOS
PROYECTOS INFORMÁTICOS
 
Pablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo web
 
unidad 4..
unidad 4..unidad 4..
unidad 4..
 
1 El Paradigma De OrientacióN A Objetos
1  El Paradigma De OrientacióN A Objetos1  El Paradigma De OrientacióN A Objetos
1 El Paradigma De OrientacióN A Objetos
 
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
 
Un vistazo al mundo Drupal
Un vistazo al mundo DrupalUn vistazo al mundo Drupal
Un vistazo al mundo Drupal
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
Migración a Software Libre
Migración a Software LibreMigración a Software Libre
Migración a Software Libre
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (13)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Clean architecture - Lightning talk - Julio 2017