Charla técnica: Therapeutic refactoring

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):

  1. Comentarios penosos
  2. Espacios en blanco al final de las líneas
  3. Código comentado
  4. Paréntesis innecesarios
  5. Parámetros explícitos por defecto
  6. imports o requires (dependiendo del lenguaje) innecesarios
  7. strings hechas de strings
  8. Demasiado trabajo manual (deja que el pc haga el trabajo, no lo hagas tú)
  9. Tests duplicados, hay que poner el mismo mimo en el código de tests que en el de producción
  10. 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.