Eligiendo objetivos para refactorizar

¿Por donde empiezas a refactorizar una vieja aplicación de codigo legado?
Lo primero en mi opinión es tratar de escribir tests automáticos de algún tipo,
que nos ayuden a asegurar que no rompemos funcionalidad. Lo normal es que sean
tests de extremo a extremo (tests de sistema). Sin embargo, el código puede
ser tan duro que escribir tests es casi imposible. Por eso tenemos que
contar con el respaldo de un equipo de QA que tenga un buen conocimiento
de la aplicación y de su dominio. Una vez tenemos tests y el apoyo
del equipo de QA, ¿por dónde empezamos a refactorizar?

Eric Evans dice lo siguiente en su libro, Domain Driven Design:

En la comunidad XP las respuestas suelen ser las siguientes:
1. Simplemente empieza por donde sea, ya que todo tiene que refactorizarse
2. Empieza por aquel lugar que está causando más problemas o molestias. Refactoriza lo que vayas necesitando para completar la tarea que estas desarrollando.

No me quedo con ninguna de estas. La primera no es práctica excepto en unos pocos proyectos en los que todos los desarrolladores del equipo tienen un nivel muy alto. La segunda tiende a dar rodeos, ocupándose de síntomas pero sin atacar a la raíz de los problemas. Al final el código va quedando cada vez más difícil de refactorizar.

Como alternativas Eric propone:

1. En un refactoring guiado por penurias (pain-driven), miras si la raíz tiene que ver con el núcleo del dominio (CORE DOMAIN) o con alguna de sus relaciones. Si la tiene, entonces cruzas los dedos y arreglas eso antes que nada.

2. Si te puedes permitir el lujo de refactorizar libremente, primero te centras
en un refactoring del núcleo del dominio, mejorando sus relaciones y facilitando
el soporte para conectar subdominios genéricos.

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
  • http://Thanks hvac repair

    Not to hijack this thread but I could use some reviews on a local company that’s located near me in Tampa but can’t seem to find enough feedback. We only need a basic AC service.They are called – Castellano Air Conditioning, 2206 1/2 N Armenia Ave, Tampa, Fl 33607-3414 -(813)877-6997

  • http://mslot.eu JOCURI SLOT

    its firs date to this blog, its nice ! keep work…..

  • http://www.basketfrmode.com Myrtie Ashcraft

    Between me and my husband we have owned additional MP3 gamers over the several years than I can count, which include Sansas, iRivers, iPods (basic & contact), the Ibiza Rhapsody, and many others. But, the final several years I’ve settled along to one line of players. Why? Since I was satisfied to find out how effectively-developed and pleasurable to implement the underappreciated (and widely mocked) Zunes are.

  • http://www.bestuggcheapsale.com/index.php/Mens-UGG-boots-cid-1368.html ugg boots for men

    What i do not understood is in truth how you’re no longer really much more neatly-preferred than you may be right now. You are so intelligent. You recognize thus significantly in relation to this topic, produced me individually believe it from a lot of various angles. Its like men and women aren’t interested except it is something to accomplish with Girl gaga! Your individual stuffs nice. At all times deal with it up!

  • http://reservesocial.info/story.php?title=gutter-cleaner gutter cleaners sydney

    Reliable information you. Thanks for sharing.