Demasiadas listas enlazadas
Demasiadas listas enlazadas
Resumen:
Introducción
El libro «Too Many Linked Lists» (en español — «Demasiadas listas enlazadas») de Alexis Beingessner no es solo una guía más sobre el lenguaje Rust. Es un manual único, profundo y en ocasiones provocador que obliga al lector a comprender realmente cómo funcionan la memoria, el ownership y el código unsafe en Rust. Publicado en 2021, este libro de unas 150 páginas se ha convertido en un referente entre los desarrolladores de Rust que desean pasar de escribir código seguro a trabajar con punteros sin procesar y gestión manual de la memoria.
El autor es un conocido desarrollador de la comunidad Rust, que ha trabajado en la biblioteca estándar de Rust y ha contribuido a proyectos como Servo. Su estilo es vivo, con humor y sin adornos innecesarios. El libro está disponible gratuitamente en línea, pero para el sitio educativo PythonLib lo consideramos un recurso valioso para todos aquellos que quieran profundizar en la programación de sistemas.
¿De qué trata este libro?
El título lo dice todo: el libro está dedicado a la implementación de varios tipos de listas enlazadas en Rust. Pero no simples, sino aquellas que requieren el uso de unsafe Rust — punteros sin procesar, desreferenciación manual y gestión de memoria. En total, el libro analiza seis implementaciones diferentes de listas simplemente enlazadas y doblemente enlazadas, cada una de las cuales revela un aspecto específico del trabajo con la memoria.
Comenzando con una pila simple basada en Box, el autor va complicando gradualmente los ejemplos, pasando a listas con punteros crudos, almacenamiento en caché, e incluso listas que utilizan asignación de memoria «perezosa». Cada capítulo es un desafío independiente que obliga al lector a replantearse cómo funcionan el borrowing, los tiempos de vida y la seguridad.
¿Para quién es este libro?
El libro está dirigido a programadores que ya conocen los fundamentos de Rust. Si acaba de empezar a aprender Rust y aún no se siente seguro con los conceptos de ownership, borrowing y tiempos de vida, este libro puede resultarle difícil. Sin embargo, para aquellos que dominan la sintaxis básica y quieren entender cómo funciona Rust «bajo el capó», es el siguiente paso ideal.
El libro también será útil para desarrolladores de C/C++ que quieran ver cómo Rust resuelve los problemas de gestión de memoria y estén dispuestos a sumergirse en el mundo unsafe. Y, por supuesto, es de lectura obligada para todos aquellos que planeen escribir bibliotecas en Rust que trabajen con estructuras de datos de bajo nivel.
¿Qué aprenderá el lector?
Después de leer el libro, podrá:
- Comprender cuándo y por qué se necesita código unsafe — y cómo minimizar los riesgos al usarlo.
- Implementar una lista simplemente enlazada y una doblemente enlazada desde cero, utilizando punteros crudos.
- Dominar el trabajo con Pin y Unpin — mecanismos que garantizan la estabilidad de las direcciones de los objetos en memoria.
- Aprender a escribir envoltorios seguros alrededor de código unsafe, sin violar las garantías de Rust.
- Entender cómo funcionan los asignadores y cómo se pueden crear estrategias propias de asignación de memoria.
- Conocer los errores típicos al trabajar con punteros: punteros colgantes, doble liberación, condiciones de carrera.
Puntos fuertes del libro
Lo primero que salta a la vista es el estilo de exposición. Alexis escribe con humor, a menudo se dirige al lector, comparte su propia experiencia y errores. No es un manual seco, sino un diálogo vivo. El segundo punto fuerte es la complejidad gradual. Cada nuevo capítulo se basa en el anterior, y nunca siente que lo arrojan de cabeza a lo más profundo.
El tercero es el enfoque práctico. El libro no contiene ejemplos abstractos; cada código se puede ejecutar y comprobar. El autor también presta atención a las pruebas y la depuración de código unsafe, algo extremadamente importante en el desarrollo real. Por último, el libro es gratuito y está disponible en versión web, lo que lo hace accesible para todos.
El único inconveniente es que el libro
Recommendations
DevOps para desarrolladores Java
Rendimiento de aplicaciones Rust
C++: consejos y mejores prácticas. Escriba código perfecto
Rendimiento de aplicaciones Swift (iOS/macOS)
Optimizing Java: Guía práctica para optimizar el rendimiento de aplicaciones Java
Guía de referencia completa de programación en Rust