Refactoring, reengineering, rewriting

Prendersi cura dell’architettura, nel tempo, come se fosse un giardino. “Gardening Your Architecture” è il titolo di due articoli di Frank Buschmann su IEEE Software, July/August e September/October 2011.

Analogie e differenze tra refactoring (ristrutturazioni locali, limitate, mirate), reengineering (ristrutturazioni complessive) e rewriting (rifacimento) delle applicazioni.

In particolare vengono elencate le motivazioni per il reengineering, “an activity that protects existing core investments”:
“There are four main reasons to contemplate reengineering:

  • Refactoring is insufficient for achieving the required qualities.
  • Bug fixes in one place repeatedly cause bugs in other places.
  • New operational or functional requirements can’t be realized appropriately within the given architecture.
  • The business case for the system changed.”

Buschmann conclude con un confronto tra le tre forme di intervento:

  • “Continuously practice refactoring. It’s cheap and (mostly) under the radar, and helps minimize the need for reengineering.
  • Consider reengineering when refactoring doesn’t help or is inappropriate. But be aware that it’s expensive and requires much ritual.
  • Consider rewriting when reengineering doesn’t help. But know that it’s often very risky.”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *