Nivel avanzado5 min de lectura · Publicado el

Libro JavaScript Allongé: qué es y dónde leerlo gratis

JavaScript Allongé: aprender a dibujar por trazos, de líneas y formas (funciones) a figuras (once, compose) y a la ilustración (clases, mixins). De funciones a clases en JSrubentejera.com funcionesclausurasoncecomposeclasesmixins
Como quien aprende a dibujar: primero trazos y formas (funciones y clausuras), luego figuras que los combinan (once, compose) y al final la ilustración completa (clases y mixins).

Qué es y quién lo hizo

Lo escribió Reg Braithwaite, que firma como raganwald, autor de librerías de programación funcional para JavaScript como Allong.es. Es la nueva edición de su JavaScript Allongé original, escrito para ES5, rehecha para la sintaxis de ES2015: funciones flecha, const, desestructuración, iteradores, símbolos y clases.

Un allongé es un café alargado, y todo el libro juega con esa idea: los capítulos se llaman «El primer sorbo», «Remueve el Allongé» o «La fábrica de café». El subtítulo dice lo que de verdad importa: Programming from Functions to Classes in ECMAScript 2015.

Dato Valor
Autor Reg «raganwald» Braithwaite
Edición The “Six” Edition (ES2015)
Extensión 511 páginas, 25 capítulos
Idioma Inglés
Formatos Lectura en línea, PDF y EPUB
Precio Gratis en línea; en Leanpub eliges cuánto pagas
Última actualización 26 de abril de 2019, marcado como completo

Qué vas a aprender

El libro empieza por lo más pequeño, una función, y va construyendo hacia arriba. Es como aprender a dibujar empezando por los trazos: líneas y formas sencillas parecen poca cosa, pero todas las figuras se apoyan en ellas.

  • Funciones básicas: argumentos, clausuras (funciones que recuerdan las variables de donde nacieron), ámbito y funciones con nombre.
  • Combinadores y decoradores: funciones que reciben funciones y devuelven otras nuevas.
  • Recetas: pequeñas utilidades listas para usar, como aplicación parcial, tap, maybe, once, compose y pipeline, memoize o mapWith.
  • Datos: arrays y desestructuración, recursión, mutación y copia en escritura.
  • Objetos y estado: encapsular estado con clausuras, this y el contexto de una llamada.
  • Colecciones: iterables, generadores y colecciones perezosas.
  • Clases y más allá: prototipos, class, mixins, delegación y decoradores de métodos.

Al final, los patrones grandes dejan de parecer magia, porque has visto cómo se arman pieza a pieza.

Un ejemplo del estilo del libro

Estas dos utilidades siguen la idea de dos recetas del libro, once y compose, escritas aquí en versión breve:

// once: envuelve una función para que solo se ejecute la primera vez
const once = (fn) => {
  let done = false;
  let result;
  return (...args) => {
    if (!done) {
      done = true;
      result = fn(...args);
    }
    return result;
  };
};

// compose: encadena funciones de derecha a izquierda
const compose = (...fns) => (value) => fns.reduceRight((acc, fn) => fn(acc), value);

const iniciar = once(() => {
  console.log('Conectando…');
  return 'conectado';
});

console.log(iniciar()); // Conectando… y después: conectado
console.log(iniciar()); // conectado (no vuelve a conectar)

const doble = (n) => n * 2;
const masUno = (n) => n + 1;
console.log(compose(doble, masUno)(5)); // 12: primero masUno, después doble

once funciona gracias a una clausura: la variable done vive dentro de la función que devuelve. Entender por qué es justo lo que enseña el libro. Si quieres una explicación en español antes de empezarlo, tienes closures en JavaScript.

Cómo sacarle partido

  1. Lee en orden los primeros capítulos, hasta «Recipes with Basic Functions». El resto se apoya en ellos.
  2. Escribe cada receta tú antes de mirar la solución, y pruébala en la consola del navegador o con Node.
  3. Busca una en tu código. Un if que evita repetir una inicialización es un once esperando a nacer.
  4. Deja las clases y los mixins para el final. Se entienden mucho mejor con la base de funciones.

Para quién es y lo que conviene saber

Encaja si ya programas en JavaScript y quieres entender las funciones a fondo, o si te interesa la programación funcional sin jerga matemática. No encaja si estás empezando con el lenguaje: te costará. Mejor primero una base como You Don’t Know JS o la lista de recursos de JavaScript en español.

Alternativas actuales

  • Functional-Light JavaScript, de Kyle Simpson: programación funcional aplicada a JavaScript, gratis en GitHub y también en inglés.
  • Eloquent JavaScript, de Marijn Haverbeke: cuarta edición de 2024, gratis en línea. Más general y apto para empezar.

Fuentes

Comprobado el 7 de noviembre de 2026: