40
Hexagonal Architecture

Arquitectura hexagonal

  • Upload
    540deg

  • View
    202

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Arquitectura hexagonal

Hexagonal Architecture

Page 2: Arquitectura hexagonal
Page 3: Arquitectura hexagonal
Page 4: Arquitectura hexagonal
Page 5: Arquitectura hexagonal
Page 6: Arquitectura hexagonal
Page 7: Arquitectura hexagonal
Page 8: Arquitectura hexagonal

WTF

WTF

WTF

WTFWTF

Page 9: Arquitectura hexagonal

WTFWTF

WTF

WTF

WTF

Page 10: Arquitectura hexagonal

Código spaghetti

Page 11: Arquitectura hexagonal

Arquitectura Hexagonal

al rescate

Page 12: Arquitectura hexagonal

Hexagonal architecture

Clean architecture

Ports and adapters

Page 13: Arquitectura hexagonal
Page 14: Arquitectura hexagonal

NFC View

Camera Commands

INPUTOUTPUT

Use Cases +

Entities

DOMAIN(Bussines logic)

External Services

INFRASTRUCTURE

DATABASE

NETWORK

FACEBOOK

Login User

Order product

List friends

Profile

Home

Products

AdaptersAdapters

Messaging

Page 15: Arquitectura hexagonal
Page 16: Arquitectura hexagonal
Page 17: Arquitectura hexagonal

ORDEN

Page 18: Arquitectura hexagonal

Estandarización

Page 19: Arquitectura hexagonal

AntesSymfony 1.4 Android

Page 20: Arquitectura hexagonal

Symfony 2 AndroidDespués

Page 21: Arquitectura hexagonal

Desacoplado

Page 22: Arquitectura hexagonal

NFC View

Camera Commands

API

PRESENTATION

Use Cases

DOMAIN(Bussines logic)

External Services

INFRASTRUCTURE

DATABASE

NETWORK

SENSORS

FACEBOOK

Login User

Order product

List friends

Profile

Home

Products

AdaptersAdapters

Page 23: Arquitectura hexagonal

PRESENTACIÓN

Presenter(s)Controller

Model

ViewEventos

Rellena la vista

Acciones Resultado de esas acciones

Datos + lógica de negocio.

DOMINIO

NFCComando

VistaCámara

Lógica de vista

MVP MVC

Page 24: Arquitectura hexagonal

DOMINIO

Page 25: Arquitectura hexagonal

Presenter Domain Infrastructure

VISTA

Fron

tera

Modelo de vista

Casos de uso

Modelo de negocio

Almacenamiento

Fron

tera

Modelo de datos

Mapeo de datos

Mapeo de datos

Servidor

Modelo de datos

Fron

tera

Page 26: Arquitectura hexagonal

Portable

Page 27: Arquitectura hexagonal

70% Portable

InboxJ2ObjC

Page 28: Arquitectura hexagonal

Android SDK (10830 LOC)

+ 5 librerías

PRESENTATION

JAVA Puro (5899 LOC)

DOMAIN

ANDROID SDK(4116 LOC)

+ 9 Librerías(orm, rest)

INFRASTRUCTURE

Symfony2 (3126 LOC)

PRESENTATION

PHP Puro (9420 LOC)

DOMAIN

Symfony2(2823 LOC)+ Librerías

(orm, messaging)

INFRASTRUCTURE

Page 29: Arquitectura hexagonal

FrameworkA good architecture allows you to defer framework decisions. A good architecture allows framework to act a s a plugins to the app.

The database is a detail, a hardware detail. We would not use one at all if all our data could fit i memory for ever.

Use a framework as a means to accomplish tasks in your application, instead of being your application itself.

Page 30: Arquitectura hexagonal

Claridad y legibilidad

Page 31: Arquitectura hexagonal

Olmix

Page 32: Arquitectura hexagonal

Casos de uso

Page 33: Arquitectura hexagonal

Extensible

Page 34: Arquitectura hexagonal

¡¡Testable!!

Page 35: Arquitectura hexagonal
Page 36: Arquitectura hexagonal
Page 37: Arquitectura hexagonal

OrdenEstandarización

DesacoplamientoPortabilidadLegibilidadMantenibilidadExtensibilidadTestabilidad

VersatilidadRentabilidad

Económico

Page 38: Arquitectura hexagonal
Page 39: Arquitectura hexagonal

Referencias

http://www.slideshare.net/PedroVicenteGmezSnch/

http://es.slideshare.net/flipper83/forgetting-android

http://es.slideshare.net/ChristianPanadero/my-way-to-clean-android-android-day-salamanca-edition

http://es.slideshare.net/jmpereirag/from-legacy-to-hexagonal-android

http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

Page 40: Arquitectura hexagonal

GRACIAS!