11. Objetivos del curso

Existen dos tipos de developers: los que saben escribir buenos test y los que no.

Los developers que saben cómo escribir buenos test también suelen saber cómo escribir buen código. Esto es así porque para escribir código testable hay que saber cómo diseñar software

Como ha mencionado Carlos, aún hoy en día nos seguimos encontrando con muchos equipos que no escriben test o los test que escriben son escasos y de baja calidad. Esto se agrava especialmente entre los developers de JavaScript, y eso que JavaScript ha sido históricamente uno de los lenguajes con más frameworks y librerías de test, pero a la vez es uno de los lenguajes con menos cultura de testing entre los miembros de su comunidad. 

Nuestro objetivo con este programa es aportar nuestro granito de arena para revertir esta situación. Para ello, en el curso combinamos conceptos transversales, es decir, conocimientos que no cambian, sobre testing, TDD y diseño de software, con profundizar en conceptos más relacionados con la tecnología. Veremos detalles tanto del lenguaje TypeScript como del framework de testing Jest. La idea es que te lleves una caja de herramientas que puedas utilizar con cualquier entorno y en cualquier stack tecnológico, además de aprender lo más importante tanto de TypeScript como con Jest. 

Este curso NO es para ti si eres un programador senior que ya lo sabe todo sobre testing y diseño de software o si eres un cowboy que no necesita que nadie más entienda tu código, ni siquiera tú mismo dentro de una semana. Pero si no es así, en este curso te enseñaremos varias cosas:

  • Desarrollar una librería de testing desde cero: además de profundizar en los diferentes tipos de test y cómo debe ser su distribución construiremos nuestra propia librería de test con el objetivo de entender los fundamentos que hay detrás de las típicas librerías o framework de testing. Entenderás que los test son una forma de expresar verdades sobre el comportamiento del código.
  • Escribir test unitarios efectivos con Jest que realmente validen las reglas de negocio que estás implementando. Además de los detalles del framework de testing, te enseñaremos buenas prácticas que te ayudarán a escribir mejores test, mejor estructurados y con mejores nombres. Tus test contarán historias sobre el negocio.
  • Programar código testable: te enseñaremos técnicas de código sostenible  y diseño de software, para que escribas código desacoplado y cohesivo que será fácil de testear y mantener.
  • Usar los mocks con cabeza: por fin entenderás la diferencia entre un mock estricto y un spy, además de comprender cuando tienen sentido y cuando no y, sobre todo, a no abusar de ellos, ya sabes, para evitar aquello de que cuando tienes un martillo todo son clavos.
  • Aplicar TDD para reducir la complejidad accidental: no te vamos a enseñar simplemente el típico ciclo red-green-refactor y sus beneficios. Tampoco te lo vamos a vender como una religión que si no sigues a rajatabla te evitará entrar al paraíso de los developers, no. TDD al final es una herramienta, pero no una cualquiera, sino una que te ayuda a forjar la codificación más sencilla si entiendes el problema y si eliges bien los test y su orden.
  • Escribir código de calidad con TypeScript: no te preocupes, no vamos a contarte que TypeScript es un superset de JavaScript que provee un sistema de tipado estructural. Todo eso ya sabemos que lo sabes, y a estas alturas estarás cansado de escucharlo. Lo que haremos es practicar, mediante katas y ejercicios, para que realmente llegues a dominar el lenguaje.


En definitiva, este programa te ahorrará muchas horas en el camino del aprendizaje, evitará que te choques con los mismos obstáculos que nos hicieron perder tiempo a nosotros y te servirá para descubrir nuevos horizontes.

Recuerda, el código se arruina o se mejora línea a línea, día a día.

Completar y continuar  
Discusión

0 comentarios