
JavaScript Patterns
Stoyan Stefanov
- Editorial
- O'Reilly
- Año
- 2010
- Páginas
- ~236
- Nivel
- Intermedio
De qué trata
Obra de referencia de Stoyan Stefanov (por entonces ingeniero en Yahoo! y creador de la herramienta de optimización YSlow/Smush.it) sobre patrones de codificación y diseño en JavaScript. Publicada en 2010, se basa en ECMAScript 3 con menciones a ECMAScript 5, y se dirige a desarrolladores de nivel intermedio y avanzado que ya programan en JavaScript y quieren escribir código más limpio, mantenible y eficiente.
El libro parte de prácticas esenciales: cómo evitar variables globales, el hoisting, los bucles eficientes, las convenciones de código y el uso de JSLint. Después compara la notación literal con las funciones constructoras para objetos, arrays, expresiones regulares y errores, y profundiza en funciones: callbacks, funciones autoejecutables, memoización, currying y patrones de inicialización. Le siguen los patrones de creación de objetos (namespaces, módulos, miembros privados, sandbox, constantes, encadenamiento de métodos), los de reutilización de código mediante herencia clásica y prototípica, mixins y préstamo de métodos, una adaptación de los patrones de diseño clásicos de Gang of Four (singleton, factory, iterator, decorator, strategy, facade, proxy, mediator, observer) y, finalmente, patrones específicos del navegador: scripting del DOM, delegación de eventos, scripts de larga duración, comunicación remota (XHR, JSONP) y estrategias de carga de scripts.
No construye aplicaciones: cada patrón se explica con fragmentos de código breves y comentados, y también se señalan los antipatrones que conviene evitar. Sigue siendo valioso para entender cómo funcionan las funciones, los closures y los prototipos, pero buena parte de sus soluciones (patrón módulo, herencia manual, carga de scripts) quedaron superadas por las clases, los módulos ES y let/const de ES2015. Conviene leerlo como base conceptual y luego contrastarlo con JavaScript moderno.
- Patrones de diseño
- Antipatrones
- Funciones y closures
- Patrón módulo
- Namespaces
- Herencia prototípica
- Code reuse
- Patrones Gang of Four
- Patrones del DOM
- Delegación de eventos
- JSLint
- ECMAScript 5
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

