Acabo de visualizar la charla Therapeutical Refactoring, de Katrina Owen, creadora de exercism.io, y me ha encantado.
Es una charla donde nos cuenta la historia de una refactorización. Me ha gustado especialmente cómo cuenta la refactorización. Ocultando las partes del código que no interesan en el paso actual y resaltando aquellas que sí.
Me ha recordado mucho a cómo vemos los desarrolladores el código, focalizándonos en pequeños detalles, entremezclados en líneas y líneas de código.
En el repositorio therapeutic-refactoring se pueden ver todos los pasos que Katrina ha dado en la refactorización.
Notas
Alrededor del minuto 19 nos habla del término codejunk. Codejunk trata sobre ruido, ruido que nos molesta para entender el código, pequeños detalles que hacen que gastemos más energía de la necesaria para entender qué hace el código. Algunos no son errores en sí, pero son como pequeños picores que no te dejan disfrutar.
Describe 10 (de menos a más molestos):
- Comentarios penosos
- Espacios en blanco al final de las líneas
- Código comentado
- Paréntesis innecesarios
- Parámetros explícitos por defecto
import
s orequire
s (dependiendo del lenguaje) innecesariosstring
s hechas destring
s- Demasiado trabajo manual (deja que el pc haga el trabajo, no lo hagas tú)
- Tests duplicados, hay que poner el mismo mimo en el código de tests que en el de producción
- Una combinación de todos los anteriores
Moral de la historia
Refactorizar te da como un cerebro externo (exobrain). Cada uno de nosotros podemos retener una cantidad finita de detalles en la memoria (me recuerda al post de J.B.Rainsberger Your tests are dragging you down). Programar es sobretodo, mantener en mente todos esos detalles. Nuestra memoria trabaja peor bajo condiciones de miedo o estrés. Refactorizar pone a salvo muchos de estos detalles, permitiéndonos trabajar más relajadamente y más confiados en que estamos haciendo un buen trabajo.