Escribe al autor
You can use this page to email Enrique Pablo Molinari about Introducción a la Arquitectura de Software.
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.
Sobre el autor
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.