Arquitectura hexagonal

Preview:

Citation preview

Hexagonal Architecture

WTF

WTF

WTF

WTFWTF

WTFWTF

WTF

WTF

WTF

Código spaghetti

Arquitectura Hexagonal

al rescate

Hexagonal architecture

Clean architecture

Ports and adapters

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

ORDEN

Estandarización

AntesSymfony 1.4 Android

Symfony 2 AndroidDespués

Desacoplado

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

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

DOMINIO

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

Portable

70% Portable

InboxJ2ObjC

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

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.

Claridad y legibilidad

Olmix

Casos de uso

Extensible

¡¡Testable!!

OrdenEstandarización

DesacoplamientoPortabilidadLegibilidadMantenibilidadExtensibilidadTestabilidad

VersatilidadRentabilidad

Económico

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

GRACIAS!

Recommended