"Codifica como si la persona que mantendrá tu código fuera un psicópata violento que sabe dónde vives."

-- ✍️ Martin Golding

Nos cuesta hacer las cosas. Y mucho más hacerlas bien. ¿Y ahora nos dicen que las mejoremos? Ni loco 😵. Si funciona no lo toques.

Claro, si ese código nunca hubiera que cambiarlo... conque se comporte correctamente es suficiente. Pero más temprano que tarde habrá que mantenerlo (aumentarlo, modificarlo o corregirlo). Y entonces, al que venga detrás no le importará tanto la función como el diseño.

🧪 Limpiar requiere cambiar por dentro sin cambiar por fuera

Mejorar, o limpiar en este argot, significa reescribir para facilitar la modificación futura. Por tanto, el cambio es inapreciable desde fuera. Hay que verlo por dentro para valorarlo.

Estamos ante los dos principales enemigos del software bien diseñado. Tengo algo que funciona; no me pagan por mejorarlo y además tengo el riesgo de estropearlo.

Vamos a atacar al segundo con un arma de destrucción masiva de quejas: los tests. Las pruebas del software son la principal garantía de que su funcionamiento es correcto con respecto a las especificaciones.

Entiendo que hacer tests es costoso, aburrido y puede parecer improductivo. Pero no hacerlos es más costoso, resolver bugs en producción es más estresante y a la larga todo es más caro.

No quiero hacer tests!! Vale, pero tampoco abandones tu camino hacia el código limpio si aún no estás convecino del valor de las pruebas. Puedes, y debes, mejorar igualmente tu código. Aunque asumirás más riesgos. Te propongo que empieces poco a poco, tal como nos recomiendan los expertos:

  • Necesitas pruebas para limpiar tranquilo.
  • Haz algún tipo de prueba, pero ¡haz pruebas!.
  • En front, mejor empieza por integración.
  • Los tests son automáticos.
  • Los tests deben estar limpios.

"Write tests. Not too many. Mostly integration."

-- ✍️ Kent C. Dodds

Si funciona...

Todo el código de muestra de este curso va acompañado de sus tests. En los laboratorios tienes todo lo necesario para ejecutarlos. Tanto si ya eres un maestro del testing como si estás empezando puedes mejorar el código y hacer las prácticas propuestas con tranquilidad.

No siempre pruebo mi código... pero cuando lo hago, es en producción

Tras la broma, una pequeña reflexión de despedida del padre del Clean Code.

"¿Por qué los desarrolladores temen cambiar su código?

Porque ¡Tienen miedo a que se rompa!

¿Por qué tienen miedo de romperlo?

Porque no tienen pruebas.

Si funciona, y tienes pruebas, tócalo."

-- ✍️ Robert C. Martin