Introducción a la Arquitectura de Software

Retirado

Este libro ya no está disponible para la venta.

Introducción a la Arquitectura de Software

Conceptos Fundamentales e Implementación

Sobre este libro

Si pasaste por la mala experiencia de mantener una aplicación compleja con código spaghetti y que a su vez requería de releases con nuevas funcionalidades cada cuatro semanas, entonces vas a comprender mejor la importancia que da tener una arquitectura sólida, donde podemos realizar modificaciones entendiendo donde repercute cada cambio.

A lo largo del libro iremos iterando una aplicación de modo de ilustrar como se implementan diferentes estilos arquitectura. En cada iteración estudiamos e implementamos un estilo de arquitectura, pasando por arquitectura en capas, hexagonal (o ports and adapters), modular y microservicios. Todo esto sustentado en sólidos conceptos de arquitectura, diseño y buenas prácticas. Utilizamos Java 11 para realizar la implementación de todos los estilos mencionados y en particular, para implementar el estilo de arquitectura modular utilizamos el sistema de módulos incorporado en Java a partir de la versión 9.

Es claro que no es suficiente entender un estilo de arquitectura estudiando un gráfico. Necesitamos implementarlo, necesitamos entender como los elementos del gráfico se transforman en código fuente. Por ello el libro contiene sobre cada uno de los estilos mencionados, su explicación conceptual y su implementación paso a paso. Todos los fuentes están disponibles para el lector. También incluimos diferentes opciones para verificar en cada commit las reglas de arquitectura que impone cada estilo.

Si bien la implementación se realiza en el lenguaje Java, es posible aplicar los mismos conceptos en lenguajes como PHP, Ruby, Python o .NET.

Este libro es una traducción al Español de Coding an Architecture Style, que fue originalmente escrito en Inglés.

Sobre el autor

Enrique Pablo Molinari
Enrique Pablo Molinari

Enrique Molinari holds a Master in Software Engineering at Universidad Nacional de La Plata (Argentina). With 20 years of experience in the software industry he has worked in many software projects as developer, technical lead and architect. He is also professor at Universidad Nacional de Río Negro, in charge of the Object Oriented Design and Advanced Database Systems undergraduate courses.

Tabla de contenidos

  •  
    • Feedback
  • I Introducción
    • 1 Introducción
      • ¿Otro libro sobre Arquitectura de Software?
      • ¿Qué contenidos abordamos en este libro?
      • ¿Quién debería leer este libro?
      • Ordenando ideas sobre arquitectura de software
    • 2 Arquitectura de Software: Definiciones Esenciales
      • ¿Qué entendemos por Arquitectura de Software?
      • Estructuras y Visualización de la Arquitectura
        • Modelo de Vistas 4+1
        • Propuesta de Estructuras y Vistas del SEI
        • Visualización en UML
        • Modelo C4
        • Conclusión
      • Estilos de Arquitectura
      • Diseño vs Arquitectura
  • II Conceptos e Implementación
    • 3 Arquitectura Modular, en Capas y Estilos
      • Espacio de Nombres, Paquetes, Capas y Módulos
        • Separación Lógica vs Física
        • Java Module System
      • Particiones Horizontales vs Particiones Verticales
        • ¿Por qué partir una aplicación?
        • ¿Es lo mismo un módulo o una capa (layer)?
      • Arquitectura en Capas
        • Definiciones y Estilo
        • Implementación
      • Arquitectura Hexagonal: Clean Architecture
        • Definiciones y Estilo
        • Implementación
      • Arquitectura en Capas Invertida
        • Estilo e Implementación
      • Arquitectura Modular
        • Definiciones y Estilo
        • Implementación
    • 4 Arquitecturas Monolíticas, Distribuidas y Estilos
      • Arquitecturas Monolíticas
        • Definiciones
        • Modular Monolith
      • Arquitecturas Distribuidas
        • ¿Por qué distribuir?
        • Fallas Parciales
        • Transacciones
        • Distributed Monolith
        • Microservicios
      • Arquitectura Modular vs Microservicios
  • III Atributos de Calidad
    • 5 Disponibilidad
      • Introducción
      • Cálculo de Disponibilidad de un Sistema
      • Otras Cuestiones que Afectan la Disponibilidad
      • Disponibilidad en Microservicios
    • 6 Escalabilidad
      • Escalando Aplicaciones Web
      • Escalando Bases de Datos
        • Teorema CAP y PACELC
        • Escalando las lecturas
        • Sharding: Escalando las escrituras
  • Notas

Leanpub incondicional, sin riesgo, 100% de felicidad garantizada

Durante los primeros 60 días de compra, puedes obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Procesamos las restituciones manualmente, así que puede tomarse unos días en aparecer. Véase términos completos.

80% de regalías. Gana $16 en un libro de $20.

Pagamos 80% de regalías. No es un error tipográfico: ganas $16 en una venta de $20. Si vendemos 5000 copias no reembolsadas de tu libro o curso por $20, ganarás $80,000.

(Sí, algunos autores ya han ganado mucho más que eso en Leanpub.)

De hecho, los autores han ganadomás de $12 millonesescribiendo, publicando y vendiendo en Leanpub.

Aprende más sobre cómo escribir en Leanpub

Actualizaciones gratis. Libre de DRM.

¡Si compras un libro Leanpub obtienes actualizaciones gratis siempre y cuando el autor actualice el libro! Varios autores usan Leanpub para publicar sus libros en progreso mientras los escriben. Todos los lectores obtienen actualizaciones gratis, independientemente de cuándo compraron el libro o cuánto pagaron (incluyendo si fue gratis).

La mayoría de los libros Leanpub se encuentran disponibles en PDF (para computadores) y EPUB (para teléfonos, tabletas, y Kindle). Los formatos que un libro incluye se muestran en la esquina superior derecha de esta página.

Finalmente, los libros Leanpub no tienen ninguna de las cosas sin sentido sobre protección de copia DRM, así que puedes leerlos fácilmente en cualquier dispositivo que se soporta.

Aprende más sobre los formatos de Leanpub y dónde puedes leerlos

Escribir y publicar en Leanpub

Los autores y editores usan Leanpub para publicar libros electrónicos sorprendentes en curso y completados, como éste. ¡También puedes utilizar Leanpub para escribir, publicar y vender tu libro! Leanpub es una potente plataforma para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda centrada en la venta de libros electrónicos en progreso. Leanpub es una máquina de escribir mágica para los autores: basta con escribir en texto plano, y para publicar tu libro electrónico, simplemente haz clic en un botón. Realmente es así de fácil.

Más información sobre cómo escribir en Leanpub