
Reliable JavaScript
Lawrence D. Spencer, Seth H. Richards
- Editorial
- Wrox
- Año
- 2015
- Páginas
- ~530
- Nivel
- Intermedio
De qué trata
Libro de Wrox en el que Lawrence D. Spencer y Seth H. Richards explican cómo escribir aplicaciones JavaScript grandes que funcionen bien desde el principio y sigan funcionando con los años de mantenimiento. Trabaja con el JavaScript de la época (ES5, con modo estricto) y está pensado para desarrolladores intermedios que ya programan en el lenguaje pero siguen escribiéndolo como si fuera un script sencillo, y que quieren aplicar disciplina de ingeniería de software a proyectos de cliente de cierto tamaño.
La primera parte sienta las bases: las particularidades del lenguaje (ejecución en un solo hilo, ámbito con funciones anidadas, por qué los scripts no son módulos), la programación por contrato, los principios SOLID y DRY, y el desarrollo guiado por pruebas (TDD). Después presenta las herramientas: el framework de pruebas Jasmine (suites, specs, matchers y spies), con menciones a QUnit y D.O.H.; la inyección de dependencias, para la que se construye un framework ligero y se compara con RequireJS y AngularJS; la programación orientada a aspectos (AOP) con un módulo propio, Aop.js, y un caso de estudio de caché; y el análisis estático con JSHint, JSLint y ESLint. También repasa las formas de crear objetos fiables: literales, el patrón módulo, prototipos y herencia prototípica, new, herencia clásica y funcional, y el monkey-patching. La segunda parte aplica un enfoque de pruebas primero a los patrones de diseño: callbacks (incluido cómo aplanar callbacks anidados y el manejo de this), promesas, sandbox y decorator, entre otros. Las partes finales se dedican a técnicas más avanzadas del lenguaje y a temas especiales de testing.
Cada patrón o práctica se aprende con el mismo método: primero se escriben las pruebas unitarias que definen el comportamiento y luego el código que las hace pasar. Así se practica a la vez la arquitectura y el testing, y todo el código está en el libro y en línea. Es un libro sólido para quien quiera interiorizar TDD y el diseño defensivo en JavaScript. Eso sí, conviene saber que se publicó en 2015: no aprovecha las clases, los módulos ES ni async/await, y herramientas como JSHint, RequireJS o AngularJS 1.x hoy han sido sustituidas por otras. Los principios siguen valiendo, pero habrá que trasladarlos a herramientas actuales como Jest o Vitest.
- TDD
- Pruebas unitarias
- Jasmine
- Inyección de dependencias
- Programación orientada a aspectos
- JSHint / ESLint
- Patrón módulo
- Herencia prototípica
- Callbacks
- Promesas
- Patrones de diseño
- SOLID
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✗ Sin proyectos

