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.
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