La arquitectura del software se ha convertido en una parte importante de los proyectos de software. Al construir una arquitectura de software sólida, selecciona las partes importantes de un sistema, piensa cómo encajan estas partes y toma decisiones cruciales al diseñar estos sistemas. Es la base de cualquier proyecto de desarrollo de software. De hecho, puede que resulte interesante leer un artículo sobre los beneficios e importancia de la arquitectura del software, haz clic aquí para leerlo.
Hay una gran diferencia entre un desarrollador senior y un arquitecto de software. Como arquitecto, se requiere que tenga más experiencia para poder diseñar una solución de extremo a extremo.
En la teoría de la arquitectura de software es tan importante como la práctica, por lo tanto, nuestro equipo de desarrolladores de software y arquitectos preparó una lista de los mejores libros sobre arquitectura de software para leer este año. Estos libros sobre arquitectura de software son realmente valiosos para comprender y aplicar de manera efectiva los principios de arquitectura de software en proyectos de software reales.

 

Top 19 libros sobre arquitectura de software 

 

1.Beyond Software Architecture: Creating and Sustaining Winning Solutions por Luke Hohmann

El primero de la lista de los mejores libros sobre arquitectura de software es “Beyond Software Architecture”. Se trata de la realidad empresarial de crear productos de software. Si eres un arquitecto de software, o sueñas con ser uno, ¡este es un libro que tienes que leer! Proporciona técnicas prácticas que los ejecutivos de desarrollo pueden emplear para mejorar la productividad de su organización de software. El libro está muy bien segmentado en capítulos lógicos, por lo que es una excelente referencia. Cubre problemas clásicos de arquitectura como portabilidad, usabilidad, rendimiento, capas, diseño de API y seguridad, así como otro material valioso, por ejemplo, arquitectura de software desde el lado de administración de negocios y productos, que a menudo se ignora o se deja hasta tarde. Este libro ofrece valiosos conocimientos y lecciones sobre la creación de soluciones de software ganadoras en el contexto de un negocio real. Aquí puede encontrar técnicas prácticas que los ejecutivos de desarrollo pueden emplear para mejorar la productividad de su organización de software. Se trata de cuestiones como licencias, implementación, instalación, configuración, soporte y ¡muchas más!

 

2. Domain-Driven Design: Tackling Complexity in the Heart of Software por Eric Evans

El segundo de la lista de los mejores libros sobre arquitectura de software es DDD por Eric Evans. Ha escrito un libro fantástico sobre cómo puede hacer que el diseño de su software coincida con su modelo mental del dominio del problema al que se dirige. No se trata de dibujar imágenes de un dominio; se trata de cómo lo piensas, el idioma que usas para hablar de él y cómo organizas tu software para reflejar tu mejor comprensión de él. Eric cree que aprender sobre el dominio de su problema es tan probable que ocurra al final de su proyecto como al principio, por lo que la refactorización es una gran parte de su técnica. Eric Evans defiende convincentemente la importancia del modelado de dominio como el foco central del desarrollo y proporciona un marco sólido y un conjunto de técnicas para lograrlo. Este libro ofrece a los lectores un enfoque sistemático del diseño impulsado por dominio, presentando un amplio conjunto de mejores prácticas de diseño, técnicas basadas en la experiencia y principios fundamentales que facilitan el desarrollo de proyectos de software que enfrentan dominios complejos. Este libro es excelente porque incorpora numerosos ejemplos basados en proyectos reales para ilustrar la aplicación del diseño impulsado por dominio al desarrollo de software del mundo real. Los lectores aprenden cómo usar un modelo de dominio para hacer un esfuerzo de desarrollo complejo más enfocado y dinámico.

 

3. 97 Things Every Software Architect Should Know: Collective Wisdom from the experts por Richard Monson-Haefel

El tercero en la lista de libros sobre arquitectura de software es “97 cosas que todo arquitecto de software debe saber”. En este libro técnico verdaderamente único, los principales arquitectos de software actuales presentan principios valiosos sobre cuestiones clave de desarrollo que van más allá de la tecnología. Más de cuatro docenas de arquitectos, entre ellos Neal Ford, Michael Nygard y Bill de Hora, ofrecen consejos para comunicarse con las partes interesadas, eliminando la complejidad, empoderando a los desarrolladores y muchas más lecciones prácticas que han aprendido con años de experiencia. Entre los 97 principios de este libro, encontrarás consejos útiles tales como: “Simplicidad antes de la generalidad, uso antes de la reutilización” – Kevlin Henney. Para tener éxito como arquitecto de software, debe dominar tanto los negocios como la tecnología. Este libro te dice lo que los mejores arquitectos de software piensan que es importante y cómo se acercan a un proyecto. Si deseas mejorar en tu carrera, este libro es una lectura esencial.

 

4. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions por Gregor Hohpe, Bobby Woolf

El cuarto lugar en la lista de los mejores libros sobre arquitectura de software es “Enterprise Integration Patterns”. Este libro proporciona un catálogo inestimable de sesenta y cinco patrones, con soluciones del mundo real. Los autores también incluyen ejemplos que cubren una variedad de diferentes tecnologías de integración, como JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP y XSL. También explora en detalle las ventajas y limitaciones de las arquitecturas de mensajería asíncrona. Los autores presentan consejos prácticos sobre el diseño de código que conecta una aplicación a un sistema de mensajería, y brindan información extensa para ayudarlo a determinar cuándo enviar un mensaje, cómo dirigirlo al destino apropiado y cómo monitorear el estado de un sistema de mensajería . Si deseas saber cómo administrar, controlar y mantener un sistema de mensajería una vez que esté en uso, ¡lee este libro!

 

5. Software Architecture in Practice por Len Bass, Paul Clements, Rick Kazman

Firth uno en la lista de los mejores libros sobre arquitectura de software es “Arquitectura de software en la práctica”. ¡Gran libro para aprender arquitectura de software! Se centra en temas clave de la arquitectura de software: “ilidades”, patrones / estilos, documentación de arquitecturas y evaluación de arquitecturas. Los autores comparten su propia experiencia, cubriendo los temas técnicos esenciales para diseñar, especificar y validar un sistema. También enfatizan la importancia del contexto comercial en el que se diseñan los sistemas grandes. Su idea era presentar la arquitectura de software en un entorno del mundo real, reflejando tanto las oportunidades como las limitaciones que enfrentan las empresas. También muestran diferentes casos de estudio que describen una arquitectura de software exitosa.

 

6. Design Patterns: Elements of Reusable Object-Oriented Software por Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm, Grady Booch

Estos autores, con su valiosa experiencia sobre el diseño de software orientado a objetos, presentan un catálogo de soluciones simples y potentes para problemas de diseño que ocurren comúnmente. Estos 23 patrones permiten a los desarrolladores crear diseños más flexibles, elegantes y, en última instancia, reutilizables sin tener que redescubrir las propias soluciones. Con este libro, aprenderás cómo estos patrones importantes encajan en el proceso de desarrollo de software, y cómo puedes aprovecharlos para resolver tus propios problemas de diseño de manera más eficiente.

 

7.  The Process of Software Architecting por Peter Eeles, Peter Cripps

Una buena arquitectura de software es la base de cualquier sistema de software de éxito. La arquitectura de software efectiva requiere una comprensión clara de los roles de la organización, los artefactos, las actividades realizadas y la secuencia óptima para realizar esas actividades. Se trata de una visita guiada accesible y centrada en tareas a través de un proyecto típico, centrándose en el papel del arquitecto, con problemas comunes iluminados y abordados en todo momento. En este libro encontrarás respuestas a las siguientes preguntas: el papel del arquitecto en un proyecto de desarrollo de software típico, cómo documentar una arquitectura de software para satisfacer las necesidades de diferentes partes interesadas, la aplicabilidad de los activos reutilizables en el proceso de la arquitectura, el papel del arquitecto con respecto a la definición de requisitos, la derivación de una arquitectura basada en un conjunto de requisitos, la relevancia de la arquitectura en la creación de sistemas complejos y ¡muchos más! 

 

8. Just Enough Software Architecture: A Risk-Driven Approach por George H. Fairbanks

Esta es una guía práctica para desarrolladores de software, y diferente de otros libros sobre arquitectura de software. Enseña la arquitectura basada en el riesgo. Este libro busca hacer que la arquitectura sea relevante para todos los desarrolladores de software. Los desarrolladores deben comprender cómo usar las restricciones como guías que aseguran los resultados deseados y cómo los cambios aparentemente pequeños pueden afectar las propiedades de un sistema.
Hay una diferencia entre poder golpear una pelota y saber por qué puedes golpearla, lo que los psicólogos llaman conocimiento de procedimiento versus conocimiento declarativo. Este libro te hará más consciente de lo que has estado haciendo y dará nombres para los conceptos desarrollados. Aparte de eso, enfatiza la ingeniería. Proporciona consejos prácticos. Las decisiones de diseño de software influyen en la arquitectura y viceversa. El enfoque de este libro abarca el comportamiento de profundización / desglose al describir modelos que tienen varios niveles de abstracción, desde la arquitectura hasta el diseño de la estructura de datos.

 

9. Software Architecture Patterns por Mark Richards

Mark Richards es un arquitecto de software con experiencia y experiencia en aplicaciones, integración y arquitectura empresarial. Activo en la industria del software desde 1983, es el autor y presentador de varios libros y videos de O’Reilly.
El éxito de cualquier aplicación o sistema depende del patrón de arquitectura que uses. Al describir las características generales de la arquitectura, estos patrones no solo guían a los diseñadores y desarrolladores sobre cómo diseñar componentes, sino que también determinan las formas en que estos componentes deberían interactuar. Este libro incluye un análisis y una tabla de puntuación para cada patrón en función de varios atributos de calidad de desarrollo de arquitectura y software. En este libro encontrarás más información sobre la arquitectura en capas, la arquitectura basada en eventos, la arquitectura de microkernel, la arquitectura de microservicios y la arquitectura basada en el espacio.

 

10. Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation por Jez Humble, David Farley

Obtener software para los usuarios suele ser un proceso doloroso, arriesgado y lento. Este libro establece los principios y las prácticas técnicas que permiten la entrega rápida e incremental de nueva funcionalidad valiosa y de alta calidad para los usuarios. Mediante la automatización del proceso de compilación, implementación y prueba, y la colaboración mejorada entre desarrolladores, probadores y operaciones, los equipos de distribución pueden obtener cambios publicados en cuestión de horas, a veces incluso minutos, sin importar el tamaño de un proyecto o la complejidad de su código base Jez Humble y David Farley comienzan presentando los fundamentos de un proceso de entrega rápido, confiable y de bajo riesgo. Luego, introducen el pipeline de implementación, un proceso automatizado para administrar todos los cambios, desde el check-in hasta el lanzamiento. Y discuten el ecosistema necesario para soportar la entrega continua, desde la infraestructura, la administración de datos y configuración hasta la gobernanza. Los autores introducen técnicas, incluida la administración de infraestructura automatizada y la migración de datos, y el uso de la virtualización. Para cada uno, revisan cuestiones clave, identifican las mejores prácticas y demuestran cómo mitigar los riesgos. La cobertura incluye: automatizar todas las facetas de construir, integrar, probar e implementar software, implementar canalizaciones de despliegue a nivel de equipo y organización, mejorar la colaboración entre desarrolladores, probadores y operaciones, desarrollar funciones de forma incremental en equipos grandes y distribuidos, implementar una gestión de configuración efectiva estrategia, automatización de las pruebas de aceptación, desde el análisis hasta la implementación, la capacidad de prueba y otros requisitos no funcionales, e implementación de implementaciones continuas y versiones sin interrupciones. También cubren cómo administrar la infraestructura, los datos, los componentes y las dependencias y cómo navegar la gestión de riesgos, el cumplimiento y la auditoría.

 

11. Scalability Rules: 50 Principles for Scaling Web Sites por Martin L. Abbott, Michael T. Fisher

Es una lectura esencial para cualquiera que se ocupe de escalar un negocio en línea. Este libro asegura que los principios de diseño estratégico se aplican a los desafíos cotidianos. Es una guía práctica y perspicaz para diseñar y construir sistemas escalables. Con la complejidad de los sistemas modernos, las consideraciones de escalabilidad deben ser una parte integral de la arquitectura y el proceso de implementación.
Abbott y Fisher transforman la escalabilidad de un “arte negro” a un conjunto de mejores prácticas realistas y tecnológicas para soportar el hipercrecimiento en casi cualquier entorno, incluidos los sistemas frontend y back-end. Para los arquitectos, ofrecen nuevos y potentes conocimientos para crear y evaluar diseños. Para los desarrolladores, comparten técnicas específicas para manejar todo, desde las bases de datos hasta el estado. Para los gerentes, brindan una ayuda invaluable en el establecimiento de metas, la toma de decisiones y la interacción con los equipos técnicos. Cualquiera que sea su función, encontrará una guía de beneficios prácticos para establecer prioridades y obtener el máximo.

 

12. Microservices vs Service-Oriented Architecture por Mark Richards

Los microservicios ganan tracción y se parecen mucho a un enfoque de desarrollo que ya conocíamos: arquitectura orientada al servicio. Ambas arquitecturas están enfocadas en dividir grandes aplicaciones monolíticas en colecciones de servicios independientes más pequeños, y ambas tienen la promesa de simplificar el desarrollo. Aquí encontrarás las respuestas a las preguntas clave: ¿qué las diferencia? ¿Son los microservicios realmente solo “SOA hecho bien”? ¿Cómo difieren los dos enfoques? ¿Son los microservicios realmente mejores que SOA? ¡Y muchos más!

 

13. Software Architecture: Foundations, Theory, and Practice por R. N. Taylor, N. Medvidovic , E. M. Dashofy

Este es un muy buen libro para aprender sobre arquitectura de software. Sin embargo, si no te gustan los libros escritos en estilo “académico”, este libro no es para ti. La arquitectura de software es fundamental para el desarrollo de aplicaciones grandes y prácticas de software intensivo. En lugar de centrarse en un método, notación, herramienta o proceso, este libro examina ampliamente las técnicas de arquitectura de software, lo que permite al instructor y al profesional elegir la herramienta adecuada para el trabajo en cuestión.

 

14. Essential Software Architecture por Ian Gorton 

Los títulos de trabajo como “Arquitecto técnico” y “Arquitecto jefe” abundan actualmente en la industria del software, sin embargo, muchas personas sospechan que la “arquitectura” es uno de los términos más utilizados y menos comprendidos en el desarrollo de software profesional. Gorton intenta resolver este dilema. Describe concisamente los elementos esenciales del conocimiento y las habilidades clave requeridas para ser un arquitecto de software. Las explicaciones abarcan lo esencial del pensamiento de la arquitectura, las prácticas y las tecnologías de soporte. Van desde una comprensión general de la estructura y atributos de calidad a través de cuestiones técnicas como componentes de middleware y arquitecturas orientadas a servicios hasta tecnologías recientes como arquitectura basada en modelos, líneas de productos de software, diseño orientado a aspectos y la Web Semántica, que influyen en los sistemas de software futuros.

 

15. Refactoring in Large Software Projects: Performing Complex Restructurings Successfully por Martin Lippert, Stephen Roock

La refabricación es un tema importante para grandes proyectos de software, especialmente en proyectos que siguen la metodología Agile, dado el hecho de que las arquitecturas evolucionan con requisitos cambiantes. Proporciona experiencia real de proyectos refactorados reales y muestra cómo refactorizar el software para garantizar que sea eficiente, fresco y adaptable. 

 

16. 12 Essential Skills for Software Architects por Dave Hendricksen

Para muchos desarrolladores, sin embargo, estas habilidades no son naturales, y raramente se abordan en la capacitación formal. Ahora, el veterano arquitecto de software Dave Hendricksen ayuda a llenar este vacío, aumentar el impacto de su organización y pasar rápidamente al siguiente nivel en su carrera. Tener habilidades técnicas no es suficiente para un arquitecto, las habilidades blandas son igualmente importantes para vivir efectivamente como arquitecto. Este libro presenta una discusión lúcida y detallada sobre 12 habilidades específicas requeridas para un arquitecto. Si eres un desarrollador y aspiras a convertirte en arquitecto, encontrarás este libro divertido de leer útil para perfeccionar tus habilidades no técnicas.

 

17. Reactive Design Patterns por Roland Kuhn Dr., Brian Hanafee, Jamie Allen

Patrones de diseño reactivo es una guía claramente escrita para crear sistemas distribuidos basados ​​en mensajes que sean flexibles, receptivos y elásticos. En este libro encontrarás patrones de mensajería, control de flujo, administración de recursos y concurrencia, junto con cuestiones prácticas como diseños de prueba amigable. Todos los patrones incluyen ejemplos concretos usando Scala y Akka.

 

18. Implementing Domain-Driven Design por Vaughn Vernon

Este libro es una lectura obligada para cualquiera que busque poner en práctica la DDD. La implementación del Diseño Dirigido por Dominio presenta un enfoque de arriba hacia abajo para comprender el diseño impulsado por el dominio de una manera que conecta de manera fluida los patrones estratégicos con las herramientas fundamentales de programación táctica. Vaughn Vernon acopla enfoques guiados a la implementación con arquitecturas modernas, destacando la importancia y el valor de enfocarse en el dominio comercial mientras se equilibran las consideraciones técnicas.

 

19. Object-Oriented Design Heuristics por Arthur J. Riel

Y el último en la lista de los mejores libros sobre arquitectura de software es “heurística de diseño orientado a objetos”. Excelente libro de desarrollo orientado a objetos para proporcionar directrices específicas basadas en la experiencia para ayudar a los desarrolladores a tomar las decisiones correctas de diseño. Este libro ofrece el siguiente paso para los lectores que conocen los conceptos básicos del desarrollo orientado a objetos y ahora necesitan saber si lo están haciendo bien y tomando las decisiones correctas.

 

Si estás interesado en los libros sobre arquitectura de software, te recomiendo que te suscribas a nuestro boletín mensual aquí.

 

Si este artículo sobre libros sobre arquitectura de software te gustó, te puede interesar: 

 

La Deuda Técnica 

Simular respuestas del servidor con Nodejs

Principio de responsabilidad única 

Por qué Kotlin ?

Patrón MVP en iOS

Arquitectura de microservicios  

F-bound en Scala: traits genéricos con higher-kinded types

Scala Generics I : Clases genéricas y Type bounds

Scala Generics II: covarianza y contravarianza