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

Uno de los libros más recomendados para todos los desarrolladores modernos es “Designing Data-intensive Applications” de Martin Kleppmann. En este artículo corto vamos a hablar de por qué vale la pena leerlo.

¿Quién es Martin Kleppmann?

Martin es un desarrollador, investigador, escritor y profesor de ciencias de la computación bastante prolífico. Actualmente trabaja en la Universidad de Cambridge y ha trabajado en empresas como Rapportive(que él fundó y fue comprada por LinkedIn, y también trabajó ahí).

Es también al autor de Secret Colors. Un libro de criptografía de llave pública y llave privada para niños, de la editorial Round Robin.

Kleppmann es un experto en todo lo que tiene que ver con estructuras y manejo de datos. En el presente (2024), su interés está en la coordinación de datos entre sistemas locales, es decir, el software funciona principalmente en un dispositivo que puede estar o no conectado a una red y después puede sincronizarse con otros sistemas remotos, para adquirir más funciones como respaldos o sincronización.

Pero su trabajo más notable hasta el momento es Designing Data-intensive Applications (DDiA a partir de ahora). Veamos por qué.

¿De qué trata Designing Data-intensive Applications?

Podemos resumir DDiA como un libro de diseño de software enfocado en los datos y sus interacciones. Es un libro de diseño en el sentido amplio: abarca desde la arquitectura de software, hasta la elección de algoritmos para lograr las características arquitectónicas deseadas.

El libro tiene tres grandes partes:

  1. En la primera habla de los principios fundamentales de los sistemas que hacen uso intensivo de datos. Habla de las características arquitectónicas que los sistemas intensivos es datos deben tener para ser usables. También se sientan las formas básicas de almacenar y representar datos a diferentes niveles.

  2. En la segunda parte, se habla de sistemas distribuidos y sus implicaciones y las dificultades que conllevan. Aquí se tratan temas como replicación, particiones y transacciones. También se tratan los temas fundamentales para tener datos confiables: consistencia y consenso.

  3. Aquí se habla de sistemas que derivan datos de otros datos, como índices, caches y cosas similares, como puedes notar, elementos que son fundamentales en cualquier sistema de software serio moderno.

Se habla de todo lo necesario para aprender el manejo de grandes cantidades de datos, desde las formas de modelarlos y almacenarlos, hasta distribuirlos y procesarlos para crear subproductos útiles.

El estilo del libro

DDiA tiene un estilo bastante relajado, nada acercado a la academia, más bien, es amigable y fácil de leer. Además tiene un poco de humor sutil que hará el libro todavía más disfrutable.

Para complementar, el libro tiene imágenes, algunas dibujadas a mano que te ayudan a ubicarte en el gran esquema de todas las ideas que trata.

Así que si te preocupa que sea un libro denso, para nada lo es.

Qué beneficios obtendrás al leerlo

Si eres un desarrollador de software con experiencia, especialmente en el backend, podrás profundizar tu experiencia en el entendimiento de la forma en la que se tratan los datos para crear sistemas confiables, escalables y mantenibles. Toma en cuenta que este libro, como su nombre lo dice está enfocado en el diseño. Este libro te dará ideas prácticas para aplicarlas a tus proyectos.

Si estás en cualquier otra área del desarrollo de software, este libro te ayudará a entender mejor cómo funciona la capa de almacenamiento de datos en cualquier sistema y puede ayudarte a hacerlo mejor en tu área, porque en todas las capas y áreas del desarrollo necesitamos tratar con datos, a veces poco, a veces mucho.

Conclusiones

Si quieres leer un libro sobre diseño de software, no puedes fallar con Designing Data-intensive Applications. Vale mucho más la pena que otros libros de diseño de software por su profundidad y practicidad, además de que te va a dar de qué platicar con otros desarrolladores de software que pueden estar en el mismo camino de desarrollo profesional que tú.

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

Comentar