Visita nuestro canal de YouTube para encontrar temas similares en video: The Dojo MX en YouTube

Hablemos sobre los libros de arquitectura de software que te enseñarán a tomar en cuenta los aspectos importantes de este campo y te pueden hacer mejor desarrollador. Como muchos desarrolladores con experiencia mencionan, la arquitectura es un rol, no un puesto de trabajo. Como rol, lo puedes ejercer parcialmente, y todos los desarrolladores deberíamos hacer arquitectura de software a diferentes escalas. El arquitecto que sólo hace diseños no debería existir.

En ninguno de estos libros vas a encontrar la sugerencia de que el arquitecto es un puesto de trabajo que sólo se dedica a hacer “planos”, sino que lo verás como una habilidad más que los desarrolladores de software debemos de tener. Empecemos con las recomendaciones, y como siempre, si quieres contribuir con alguna recomendación, puedes hacerlo en los comentarios.

Designing Data-Intensive Applications | Martin Kleppmann

Portada de Designing Data Intensive Applications

Aceptémoslo: 90% de las aplicaciones útiles necesitan procesar grandes cantidades de datos para funcionar. A veces sólo a eso se dedican.

Es por eso que un libro como este, que habla del funcionamiento interno de diferentes sistemas que procesan grandes cantidades de datos, su arquitectura y las técnicas que los hacen funcionar, es un libro esencial para los desarrolladores de software modernos.

Algunos temas que vas a poder aprender son:

  • Las características de un buen sistema que procesa información
  • Las estructuras de datos que le dan el poder sistemas como las bases de datos
  • Modelos de datos y lenguajes de consulta
  • Replicación

Todos estos temas son esenciales para ser un buen desarrollador de software.

Puedes comprarlo aquí: Designing Data-Intensive Applications o en Amazon

Sofware Architecture for Developers y The C4 Model | Simon Brown

Portada de Software Architecture for Developers

Simon Brown es un desarrollador y arquitecto que enseña a otros desarrolladores a practicar lo mejor posible la arquitectura de software.

Simon explica en Software Architecture for Developers lo que es la arquitectura de software, desde su comparación con la arquitectura de edificios, las cosas en las que se parece y diferencia, junto las responsabilidades y el conocimiento que es necesario para esta actividad.

En el “The C4 Model” explica una forma específica de comunicar la información que el diseño de un sistema contiene, incluyendo cuatro diagramas a diferentes niveles de abstracción, con el objetivo de que quienes lo analicen se lleven una buena idea de cómo funciona el sistema.

Puedes comprarlos aquí: Software Architecture for Developers, también puedes comprarlos por separado, pero te llevas un mejor valor si los compras juntos.

Fundamentals of Software Architecture | Mark Richards & Neal Ford

Portada de Fundamentals of Software Architecture

¿Quieres obtener el conocimiento más básico de arquitectura de software? En este libro, los autores te lo enseñarán.

Empieza desde lo esencial y avanza hasta las mejores prácticas para analizar las características que necesitas implementar. El libro pasa (a grandes rasgos) por los siguientes temas:

  1. ¿Qué es la arquitectura de software?
  2. Cómo adquirir la forma de pensar de un arquitecto
  3. Estilos arquitectónicos
  4. Softskills para arquitectos

Es un gran libro con muy buenas temas para empezar a practicar directamente, además escrito por expertos en el tema.

Puedes comprarlo aquí: Fundamentals of Software Architecture

Software Architecture the Hard Parts | Neal Ford, Mark Richards, Pramod Sadalage & Zhamak Dehghani

Portada de Software Architecture the Hard Parts

Los sistemas distribuidos son lo que más se desarrolla hoy en día, debido a las necesidades de la industria. Saber crear arquitecturas distribuidas es algo que un desarrollador avanzado debe dominar.

En este libro se habla de tres cosas principales:

  1. Buenas ideas para empezar a hacer y documentar arquitecturas
  2. Separación: diseñar los componentes, los módulos, separación de datos, etc.
  3. Juntar todo de nuevo: contratos, service meshes, transacciones distribuidas, flujos de trabajo, etc.

Es un libro que maneja temas avanzados y temas sobre los que tienes que saber bastante antes de empezar a leer el libro, así que te recomiendo empezar con los libros anteriores, además de obtener nociones de sistemas distribuidos.

Puedes comprarlo aquí: Software Architecture the Hard Parts

Domain Driven Design | Eric Evans

Portada de Domain Driven Design

Este libro es la Biblia del diseño dirigido por el dominio, un estilo que se enfoca en crear un modelo de software que refleje el negocio (o el dominio) de la mejor manera posible.

La principal idea de esta técnica es que los desarrolladores de software se entiendan y puedan hablar como un experto más en el dominio. Esto se logra creando un lenguaje común entre los desarrolladores y los expertos en el dominio, soportado por el modelo de software que se crea.

Creo que aunque no siempre es aplicable, es bueno conocerlo y tener listas las técnicas para la aplicación completa o parcial de este estilo de diseño.

Puedes comprarlo aquí: Domain Driven Design.

Un libro alternativo a este, más moderno y ligero es: Learnig Domain Driven Design.

System Design Interview 1 y 2 | Alex Xu

Portada de System Design Interview 1

Estos libros te enseña de manera concisa las bases del diseño de sistemas de software, desde los principios de diseño, hasta las diferentes partes que componen un sistema complejo que necesita soportar muchos usuarios.

Alex Xu es un buen creador de contenido de muy buena calidad y en estos libros explica lo necesario de forma lo suficientemente sencilla. Te lo recomiendo si quieres aprender sobre una gran cantidad de temas relacionados con el diseño de sistemas y la arquitectura de software.

Puedes ver la página en la que publica más información acerca de lo que hace en: ByteByteGo {:target=”_blank”}, además de que puedes suscribirte para aprender más sobre el diseño de sistemas y prepararte para entrevistas de trabajo.

Lo puedes comprar aquí: System Design Interview 1 y System Design Interview 2

Conclusión

Hay una buena colección de libros que te pueden ayudar a ser un mejor desarrollador de software mejor preparado, fortaleciendo una parte que todos los desarrolladores tenemos que ejercer: la arquitectura de software.

Empieza con estos libros uno a uno, o úsalos como referencia para cuando tengas que resolver un problema específico.

Visita nuestro canal de YouTube para encontrar temas similares en video: The Dojo MX en YouTube

Comentar