2
Introduzione
Nell’Object Oriented mi sono sempre sforzato di verificare l’applicabilità di ogni teoria appresa,
così da poter riusare, tutto o parte di essa, in modo ripetibile e tracciabile: teoria, analisi,disegno, pattern, documentazione, etc.In questo articolo mi propongo di esporre, miscelando insieme, teorie apprese, esperienze
personali e riflessioni sull’argomento.
Il refactoring: la giusta definizione
Il refactoring mi ha sempre notevolmente affascinato per le sue notevoli potenzialità. Tuttaviaquando parliamo di refactoring è necessario definire bene cosa intendiamo.In [DR2] si è visto che per la fase di costruzione, sia per un
Rational Unified Process
o per altriprocessi produttivi come
Agile
o
Estreme Programming
, le iterazioni sono incrementali per lefunzionalità; mentre sono iterative a riguardo del codice appena realizzato.Il refactoring, quindi, potrebbe essere definito come
“la parte iterativa dell’iterazione di
processo produttivo, finalizzata a migliorare il codice, a renderlo stabile, riusabile, manutenibile
e flessibile, fermo restando il comportamento finale del codice stesso”
.Di per sé è già una grande definizione! Tuttavia questa definizione è solo una vista di unamedaglia a due facce!!Il refactoring è, in realtà, sia di
natura preventiva che adeguativa
, per cui parlerei
dell’esistenza di due tipi di refactoring:
Il “Design Refactoring”;
L’”Implementation Refactoring”.
Design Refactoring
Il Disegn Refactoring è finalizzato a migliorare il modello del disegno per ottenere stabilità,
riusabilità, manutenibilità e flessibilità del sistema. E’ preventivo, perché, se il sistemas’implementa secondo le sue direttive, si ottiene un prodotto che ha già in sé delle “b
est
practices”, grazie al disegno.
Il Design Refactoring, difatti, si basa essenzialmente su alcuni principi, che vedremo in seguito,
e sull’uso dei Pattern [DR5][DR6].
L’obiettivo del Design Refactoring è di tendere a migliorare la qualità del prodotto
poiché le
scelte vengono prese preventivamente nell’architettura e nel disegno (Pattern architetturali,
Design Pattern, etc) per cui si tende a ridurre il numero di errori del prodotto.Io applico il Design Refactoring appena dopo la modellazione UML a colori [DR3], perché con
quest’ultima tendo prima a capire il modello; poi col Design Refactoring, invece, tendo a
migliorare il sistema, introducendo gli adeguati Pattern architetturali ed i vari Design Pattern.Fermarsi solo alla modellazione UML a colori servirebbe solo ad individuare un modello cherispecchia la realtà, conferendogli stabilità, ma non si è ancora fatto nulla per problematiche di
riusabilità e flessibilità, che sono quelle per cui l’Object Oriented è ritenuto estremamente
valido.
Add a Comment