Introducción
Potenciación de las generaciones de codificación limpia y funcional en desarrolladores con experiencia anterior en JavaScript
Estructuración con facilidad de un mejor código y en módulos diferenciados
Exploración de patrones y prácticas vigentes de diseño en la industria actual y cómo usarlos
Aprendizaje para la realización de pruebas unitarias
Control y gestión adecuada de errores en JavaScript
Resumen
Conceptos iniciales para la generación de código limpio (Clean Code)
Variables
Qué es Lexical Scope (static scope). Uso de la instrucción "let"
Tipos de datos
Funciones
Todo sobre la palabra clave "this"
Objetos and Clases
Prevención de errores y formato homogéneo del código gracias a la herramienta
Actividad de evaluación de los conocimientos adquiridos por el alumno
Resumen
Conceptos iniciales de generación de código funcional con JavaScript
¿Qué es la programación funcional?
Las funciones puras en JavaScript.
El correcto uso del método Object.assign y el operador Spread
Optimización de bucles en JavaScript
Reducción de arrays
Filtrado en arrays
Actividad de evaluación de los conocimientos adquiridos por el alumno
Resumen
Módulos en JavaScript
Reutilización de código con patrón módulo (Module Pattern)
Utilización del gestor de paquetes Node Package Manager (npm)
El proyecto CommonJS
La API de definición asíncrona de módulos (AMD)
Módulos de ES6
Eliminación de código inactivo (Tree-Shaking) con Webpack
Actividad de evaluación de los conocimientos adquiridos por el alumno
Resumen
Patrones y principios de Diseño
Qué es el principio de responsabilidad única (Single Responsability Principle)
El principio Open/Closed
El principio de sustitución Liskov
El principio de segregación de la interfaz
El principio de Inversión de Dependencias (Dependency Inversion)
El patrón Singleton
El patrón Observer
El patrón Estrategia (Strategy)
Actividad de evaluación de los conocimientos adquiridos por el alumno
Resumen
Pruebas del Código Generado
Qué son y qué no son y la importancia de las pruebas unitarias
Instalación y uso del framework de testing Jasmine
Desarrollo guiado por pruebas de software, o Test-Driven Development (TDD).
Ejercicio guionizado para consolidar formación del alumno
Resumen
Manejo de errores
Estudio de buenas prácticas
Detección de errores en operaciones asíncronas (Objeto Promise)
Estrategias y recomendaciones en el manejo de errores
Generación de logs con JavaScript
Actividad de evaluación de los conocimientos adquiridos por el alumno
Resumen