MVP & FRP for a controllerless architecture
By Albert Parrón
#SoftwarearchitecturewithApiumhub #AlbertParrón
Follow us: Apium_hub
#SCBCN18
Software Crafters Barcelona - VI Edition
Arquitectura
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Premisa
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Objetivos
Qué intentamos conseguir con una arquitectura
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Modularidad
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Smart UI
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Request
Response
Persistence
Smart UI
Document View
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Request
Response
View
Persistence
Document
MVC Triad
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Request
Response
View
Persistence
Model
Controller
Modifies
Observes
Notifies
MVC
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
MVC - es un problema de Orientación a Objetos..
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Evoluciones - MVVM
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Vuelta al MVC original
Un primer paso
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Un problema de “Cajas” - 1
Coupling:
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Un acercamiento desde la programación funcional
Function Composition:
f : X → Y
g : Y → Z
h: g ∘ f (o f;g )
h(x) = (g ∘ f )(x) = g(f(x))
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Un acercamiento desde la programación funcional
Function Composition:
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Controllerless Architecture - back to original MVC
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
DDD - isolate side effects
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Tactical DDD
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Tactical DDD
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Tactical DDD
- Client “Services”
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
FRP - Un paso más
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
FRP - Basics
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
FRP - Monad
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
FRP - Wiring
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Expresividad
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
MVC es bidireccional?
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Paradigma Controllerless y direccionalidad
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Flux
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Presenter First
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
En Resumen
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Sentido Común
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
¿Preguntas?
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
@Apium_hub #SoftwarearchitecturewithApiumhub #AlbertParrón
Thank you so much!!
www.apiumhub.com