3 libros que todo desarrollador que use HTTP tiene que leer

Hay dos cosas en esta vida que me encabronan profundamente. 

Namber guán: todos usamos http

Namber chú: pocos sabemos de qué va

HTTP fue diseñado para algo muy limitado: enviar textos científicos y enlazarlos entre sí. Jamás se contempló que pudiese ser usado como mecanismo casi universal de transporte de información de todo tipo y a escala planetaria. No es la herramienta adecuada, ni muchísimo menos.

Es simplemente, una ñapa que ha pegado en el palo y se fué usando y usando y que probablemente siga con nosotros dentro de 50 años. Algo así como la distribución antinatural de teclas que tienen los teclados o la silueta de un  diskette como símbolo de “guardar”.

Estos fósiles vivos son comunes en todo sistema complejo que evoluciona con los años. En biología los hay a montones, tal vez el más famoso es el “nervio laringeo inferior” de las jirafas. 

Richard Dawkins explica el nervio laríngeo inferior de las jirafas y por qué esa ñapa horrenda es un indicio irrefutable de la evolución mucho mejor que yo, así que dejo que lo haga él.

La forma de sobrellevar estos fósiles vivos es poner capas de abstracción sobre ellos (en vista de que no se puede cambiar), es decir, el equivalente a guardar la basura debajo de la alfombra.

El problema es que una vez debajo de la alfombra, ya nadie lo ve, y esto nos lleva al segundo problema: casi nadie sabe cómo funciona HTTP y se le trata como una caja negra.

Dado que hoy en día HTTP es el mecanismo cuasi universal para la comunicación entre sistemas, no podemos darnos ese lujo. Poco importa si es programador Android, iOS, backend, frontend web o desktop. Si tu sistema está conectado a otros mediante http, tienes que tener conocimiento de cómo funciona y cuales son sus limitaciones.

Para ello, te voy a recomendar 3 libros que iluminan el interior de esa caja negra.

High Performance Browser Networking de Ilya Grigorik

Si solo vas a comprar uno, que sea este. El autor, que tiene una amplia experiencia en el sector, especialmente dentro de Google, repasa los fundamentos del networking así como las principales limitaciones y cómo crear aplicaciones de alto rendimiento que usan las redes modernas de forma eficaz.

Todo programador, sin importar la plataforma exacta que usa, debería de leerlo (si programas en Cobol, tal vez no). Si trabajas en web, ya sea backend o frontend, es obligatorio.

Designing Data-Intensive Applications de Martin Kleppmann

Aplicaciones con un uso intensivo de datos… Hace unos años, parecía un nicho, pero hoy en día cualquier cosa que pille un mínimo de escala, encaja en dicha descripción, y cuando el 5G se vuelva universal, ni te cuento.  En estos casos, los posibles cuellos de botella así como las cáscaras de plátano que te esperan son innumerables. 

Bueno, tal vez no innumerables, porque Martín nos las enumera y explica muy bien en este libro. Al contrario del anterior, este es realmente indispensable para backend, pero no hace daño a ningún desarrollador frontend o mobile.

HTTP made really easy, de James Marshall

Si eres un vago y un tacaño, este es el único libro que necesitas: cubre lo básico de http, de forma muuuuy sencilla y encima es gratis. Puedes bajarlo (mediante http) como pdf, leerlo online (mediante http) o descargarlo (mediante http) a tu Kindle.

Ya no tienes disculpas.

Acerca de Fernando Rodriguez

Fundador & Editor Jefe de justcodeit, Fernando Rodríguez (@frr149 & Linkedin) es desarrollador & un experto en la enseñanza de máxima calidad en programación y desarrollo para dispositivos iOS, Cocoa Touch, Objective C, Swift, Python, entre otros, aunque su mejor carta de presentación, es la opinión de sus alumnos: http://keepcoding.io/es/testimonio/ CLO en KeepCoding & Arunovo. Instructor de iOS Avanzado del Big Nerd Ranch. Profesor Asociado de la U-tad, autor invitado de revistas como iPhoneWorld, Applesfera.com & ponente habitual en conferencias dentro y fuera de España (iOSDevUK, CodeMotion, BCNDevCon, etc). En sus vidas anteriores fue un nerd de Python y Django, mago de Smalltalk, y para su pesar, galeote de C++ y un gran cocinero.

Share this:

Leave a comment