SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Ähnlich wie Clean architecture - Lightning talk - Julio 2017

Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012Open pyme selibre-oswc-2012
Open pyme selibre-oswc-2012
oswc2012
 

Ähnlich wie 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
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Clean architecture - Lightning talk - Julio 2017