Clean Code, SOLID y Testing aplicado a JavaScript

Clean code o código limpio es aquel que se ha escrito con la intención de que otra persona (o tú mismo en el futuro) lo entienda.

Mejora la legibilidad tu código Javascript aplicando Clean Code. Aprenderás a escoger mejores nombres para las variables, a escribir funciones más simples y legibles, a diseñar clases mejor estructuradas.

Escribe código más intuitivo, testeable y tolerante a cambios gracias a los principios SOLID. No solo te enseñaremos cómo y cuándo aplicarlos, sino que además te explicaremos con detalle conceptos relacionados como el patrón adaptador o la inyección de dependencias.

Aumenta la calidad y la seguridad de tu código aplicando Unit Testing y TDD. Profundizamos en múltiples conceptos relacionados con el Testing de Software, te mostraremos cómo crear buenos test unitarios y a utilizar TDD como herramienta de diseño, todo ello haciendo uso del framework Jest.

❤️ Gracias por tu compra ❤️

Tu libro espera en tu bandeja de correo electrónico. ¡Qué lo disfrutes!

formato

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.

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 libre 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, seguro 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.

Tabla de contenidos

  • Prefacio
    • Qué no es este libro
  • Agradecimientos
  • Sobre Software Crafters
  • Sobre el autor
    • Otros intereses
  • 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 y nombres
    • Nombres pronunciables y expresivos
    • Uso correcto de var, let y const
    • Ausencia de información técnica en los nombres
    • Léxico coherente
    • Nombres según el tipo de dato
      • Arrays
      • Booleanos
      • Números
      • Funciones
      • Clases
  • Funciones
    • Tamaño y función
    • Número de argumentos
    • Estilo declarativo frente al imperativo
    • Funciones anónimas
    • Transparencia referencial
    • Principio DRY
  • Evita el uso de comentarios
  • Formato coherente
    • Problemas similares, soluciones simétricas
    • Densidad, apertura y distancia vertical
    • Lo más importante primero
    • Indentación
  • Clases
    • Tamaño reducido
    • Organización
    • Prioriza la composición frente a la herencia

  • 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

Testimonios

photoCarlos BléSoftware CraftsmanTotalmente recomendado el nuevo libro de mi amigo Miguel A. Gómez. Enhorabuena por la publicacion, gran trabajo! 👏👏
photoLuis del AmoFullstack DeveloperMe encantó el libro, muy buenos ejemplos y bien redactado. Recomendable 100%. Gracias por esta aportación en castellano. Mucha gente lo agradecerá.
photoJorge NietoFrontend DeveloperMucha suerte! Un éxito seguro!!!
photoJuan Manuel PérezEstudiante de Ing. InformáticaOh my god, lo leeré, tiene una muy buena pinta

Formato libre de DRM

El libro está generado en tres formatos completamente libres de DRM. MOBI, por si usas un Kindle para leer tus e-books, epub y pdf.

Actualizaciones gratuitas

Aunque entenemos que el libro está completo, solemos actualizarlo frecuentemente para seguir perfeccionándolo. Te enviaremos de forma gratuita todas las actualizaciones que vayamos realizando. Última actualización en Octubre de 2019.

Garantía de satisfacción

Recuerda que si no es lo que esperas, te devolvemos tu dinero. Durante los primeros 45 días de compra, puedes obtener un reembolso del 100%. El riesgo es cero y el beneficio podría ser muy elevado.