Clean JavaScript
Clean JavaScript
Aprende a aplicar código limpio, SOLID y Testing
Sobre el Libro
JavaScript se ha convertido en uno de los lenguajes más utilizados del mundo, se encuentra en infraestructuras críticas de empresas muy importantes (Facebook, Netflix o Uber lo utilizan).
Por esta razón, se ha vuelto indispensable la necesidad de escribir código de mayor calidad y legibilidad. Y es que, los desarrolladores, por norma general, solemos escribir código sin la intención explícita de que vaya a ser entendido por otra persona, ya que la mayoría de las veces nos centramos simplemente en implementar una solución que funcione y que resuelva el problema. La mayoría de las veces, tratar de entender el código de un tercero o incluso el que escribimos nosotros mismos hace tan solo unas semanas, se puede volver una tarea realmente difícil.
Este pequeño e-book pretende ser una referencia concisa de cómo aplicar clean code, SOLID, unit testing y TDD, para aprender a escribir código JavaScript más legible, mantenible y tolerante a cambios. En este encontrarás múltiples referencias a otros autores y ejemplos sencillos que, sin duda, te ayudarán a encontrar el camino para convertirte en un mejor desarrollador.
El libro también lo puedes obtener directamente en nuestra web con un 25% de descuento. Accede desde aquí.
Traducciones
Índice
-
Prefacio
- Qué no es este libro
- Agradecimientos
- Sobre Software Crafters
- Sobre el autor
- Introducción
-
Deuda técnica
- Tipos de deuda
- Refactoring, las deudas se pagan
- Mejor prevenir que curar, las reglas del diseño simple
- SECCIÓN I: CLEAN CODE
- ¿Qué es Clean Code?
-
Variables, nombres y ámbito
- Uso correcto de var, let y const
- Nombres pronunciables y expresivos
- Ausencia de información técnica en los nombres
- Establecer un lenguaje ubicuo
-
Nombres según el tipo de dato
- Arrays
- Booleanos
- Números
- Funciones
- Clases
-
Ámbito o scope de las variables
- Ámbito global
- Ámbito de bloque
- Ámbito estático vs. dinámico
- Hoisting
-
Funciones
- Declaración de una función
- Expresión de una función
-
Expresiones con funciones flecha (arrow functions)
- Funcionamiento del objeto this en arrow functions
- Funciones autoejecutadas IIFE
-
Parámetros y argumentos
- Limita el número de argumentos
- Parámetros por defecto
- Parámetro rest y operador spread
-
Tamaño y niveles de indentación
- Cláusulas de guarda
- Evita el uso de else
- Prioriza las condiciones asertivas
- Estilo declarativo frente al imperativo
- Funciones anónimas
- Transparencia referencial
- Principio DRY
- Command–Query Separation (CQS)
-
Algoritmos eficientes
- Notación O grande (big O)
-
Clases
-
Prototype y ECMAScript moderno
- Constructores y funciones constructoras
- Métodos
- Herencia y cadena de prototipos
- Tamaño reducido
- Organización
- Prioriza la composición frente a la herencia
-
Prototype y ECMAScript moderno
-
Comentarios y formato
- Evita el uso de comentarios
-
Formato coherente
- Problemas similares, soluciones simétricas
- Densidad, apertura y distancia vertical
- Lo más importante primero
- Indentación
- SECCIÓN II: PRINCIPIOS SOLID
- Introducción a SOLID
-
De STUPID a SOLID
- ¿Qué es un code smell?
- El patrón singleton
-
Alto acoplamiento
- Acoplamiento y cohesión
- Código no testeable
-
Optimizaciones prematuras
- Complejidad esencial y complejidad accidental
- Nombres poco descriptivos
-
Duplicidad de código
- Duplicidad real
- Duplicidad accidental
- Principios SOLID al rescate
-
SRP - Principio de responsabilidad única
- ¿Qué entendemos por responsabilidad?
- Aplicando el SRP
- Detectar violaciones del SRP:
-
OCP - Principio Abierto/Cerrado
- Aplicando el OCP
- Patrón adaptador
- Detectar violaciones del OCP
-
LSP - Principio de sustitución de Liskov
- Aplicando el LSP
- Detectar violaciones del LSP
-
ISP - Principio de segregación de la interfaz
- Aplicando el ISP
- Detectar violaciones del ISP
-
DIP - Principio de inversión de dependencias
- Módulos de alto nivel y módulos de bajo nivel
- Depender de abstracciones
- Inyección de dependencias
- Aplicando el DIP
- Detectando violaciones del DIP
- SECCIÓN III: TESTING Y TDD
- Introducción al testing
-
Tipos de tests de software
- ¿Qué entendemos por testing?
- Test manuales vs automáticos
-
Test funcionales vs no funcionales
- Tests funcionales
- Tests no funcionales
-
Pirámide de testing
- Antipatrón del cono de helado
-
Tests unitarios
- Características de los tests unitarios
- Anatomía de un test unitario
-
Jest, el framework de testing JavaScript definitivo
- Características
- Instalación y configuración
- Nuestro primer test
- Aserciones
- Organización y estructura
- Gestión del estado: before y after
- Code coverage
-
TDD - Test Driven Development
- Las tres leyes del TDD
- El ciclo Red-Green-Refactor
- TDD como herramienta de diseño
-
Estrategias de implementación, de rojo a verde.
- Implementación falsa
- Triangular
- Implementación obvia
- Limitaciones del TDD
-
TDD Práctico: La kata FizzBuzz
- Las katas de código
- La kata FizzBuzz
- Descripción del problema
- Diseño de la primera prueba
- Ejecutamos y… ¡rojo!
- Pasamos a verde
- Añadiendo nuevas pruebas
- Refactorizando la solución, aplicando pattern matching.
- Siguientes pasos
- Referencias
Garantía de satisfacción 100% de Leanpub por 60 días
Durante los 60 días posteriores a la compra, puedes obtener un reembolso del 100% en cualquier compra de Leanpub, en dos clics.
Técnicamente, esto es arriesgado para nosotros, ya que tendrás los archivos del libro o curso de cualquier manera. Pero estamos tan seguros de nuestros productos y servicios, y de nuestros autores y lectores, que nos complace ofrecer una garantía de devolución total del dinero para todo lo que vendemos.
Solo puedes descubrir qué tan bueno es algo probándolo, y debido a nuestra garantía de devolución del 100% del dinero, ¡literalmente no hay riesgo al hacerlo!
Entonces, no hay razón para no hacer clic en el botón Agregar al carrito, ¿verdad?
Ver términos completos...
Gane $8 por una compra de $10, y $16 por una compra de $20
Pagamos regalías del 80% en compras de $7.99 o más, y regalías del 80% menos una tarifa fija de 50 centavos en compras entre $0.99 y $7.98. Usted gana $8 en una venta de $10, y $16 en una venta de $20. Así que, si vendemos 5000 copias no reembolsadas de su libro por $20, usted ganará $80,000.
(Sí, algunos autores ya han ganado mucho más que eso en Leanpub.)
De hecho, los autores han ganadomás de $14 millones escribiendo, publicando y vendiendo en Leanpub.
Aprenda más sobre escribir en Leanpub
Actualizaciones gratuitas. Sin DRM.
¡Si compras un libro de Leanpub, recibirás actualizaciones gratuitas mientras el autor actualice el libro! Muchos autores utilizan Leanpub para publicar sus libros mientras los escriben. Todos los lectores reciben actualizaciones gratuitas, sin importar cuándo compraron el libro o cuánto pagaron (incluso si fue gratis).
La mayoría de los libros de Leanpub están disponibles en PDF (para computadoras) y EPUB (para teléfonos, tabletas y Kindle). Los formatos incluidos en un libro se muestran en la esquina superior derecha de esta página.
Finalmente, los libros de Leanpub no tienen ninguna protección DRM sin sentido, por lo que puedes leerlos fácilmente en cualquier dispositivo compatible.
Aprende más sobre los formatos de ebook de Leanpub y dónde leerlos