Post on 10-May-2015
description
Arquitectura SoftwareManual de supervivencia
Yeray Darias Camacho @ydarias
¿Quién soy?
Backend development Mobile
development
Training
No todo es arquitectura
Equipo
Metodología
Antes de proseguir ... yo uso el lenguaje que
más me conviene y punto.
¿Qué es la arquitectura del software?
1. “A formal description of a system, or a detailed plan of the system at component level to guide its
implementation.”
The Open Group Architecture Framework
2. “The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.”
The Open Group Architecture Framework
“In most successful software projects, the expert developers working on that project have a shared
understanding of the system design. This shared understanding is called “architecture.” This understanding
includes how the system is divided into components and how the components interact through interfaces. These components
are usually composed of smaller components, but the architecture only includes the components and
interfaces that are understood by all the developers ... Architecture is about the important stuff. Whatever that
is.”
Martin Fowler
Las tres leyes de la optimización
#1 No optimizar
#2 No optimizar aún
#3 Si optimizas hazlo en función de una medida
Arquitectura web predominante hace 5 años
Petición HTTP
Respuesta HTML
Arquitectura web actual???
Petición AJAX
Respuesta JSON
Petición AJAX
Respuesta JSON
Petición HTTP (Ajax)
Respuesta JSON
Front-end
Back-end
Persistencia
Características ACID
Atomicity Consitency Isolation Durability
Teorema CAP
Consistency
Partition tolerance
Availability
Teorema CAP
Consistency
Partition tolerance*
Availability
*Se da por hecho en sistemas distribuidos modernos
Veamos que hay bajo el capó