Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Di cosa parleremo
Esempi dei vantaggi concreti apportati ad un progetto dall'uso sistematico di code refactoring e l'impatto sul processo di sviluppo software. Come l'attenzione alla scrittura di un codice pulito si traduca in vantaggi reali sia nello sviluppo che nella manutenzione del codice I problemi provocati a lungo termine provocati da code smells e programmazione troppo procedurale.
Qualit del software Pattern Proggettazione: UML Framework Metriche software Processo di sviluppo del software Ciclo di vita del software ALM
Qualit esterne
Correttezza Affidabilit Robustezza Efficienza Usabilit Scalabilit
Qualit interne
Verificabilit Manutenibilit Riparabilit Evolvibilit Riusabilit Portabilit
Pattern creazionali
L'Abstract factory, Builder, Factory method , Prototype, Singleton
Pattern strutturali
Adapter, Bridge, Composite, Container, Decorator, Faade ("facciata"), Proxy
Pattern comportamentali
Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Visitor
Pattern architetturali
I pattern architetturali operano ad un livello diverso (e pi ampio) rispetto ai design pattern, ed esprimono schemi di base per impostare l'organizzazione strutturale di un sistema software. In questi schemi si descrivono sottosistemi predefiniti insieme con i ruoli che essi assumono e le relazioni reciproche.
Progettazione e UML
UML
Diagramma di sequenza
UML
uno strumento straordinario a livello astratto, ma le esigenze concrete portano rapidamente a una divergenza tra il progetto (in uml) e il codice de facto. Microsoft con VS 2010 propone un meccanismo di reverse e forward engineering, che garantisce il sincronismo tra codice e modello, oltre a farne uno strumento di analisi del codice preesistente. Ma a livello pratico?
E la pratica?...
Molte aziende (e sviluppatori) vedono lingegneria del software come qualcosa di molto astratto e teorico. Difficile da comprendere, incapace di soddisfare le esigenze reali, e di essere messo in atto allinterno di tempi e budget reali.
Strategia di risoluzione
Individuare il problema Risolverlo ed evitare che si proponga in futuro
Tool
Visual Studio* ReSharper NDepend
Busines s Layer
Application
Metodi inutilizzati
Classi pi utilizzate
Qualche statistica
Metodi pi utilizzati
Qualche statistica
Find Usage
File Structure
Refactoring (1)
Extract Method Introduce Parameter Introduce Variable Extract Superclass Safe Delete Rename Encapsulate Field Extract Class from Parameters Extract Interface Inline Method
Refactoring (2)
Move Type to Another File or Namespace Move Type to Outer Scope Move Types into Matching Files Pull Members Up / Down Use Base Type where Possible Replace Constructor with Factory Method Add Property with backing field Code Template
Il refactoring in rete
Il refactoring in rete
Il refactoring in rete
Il refactoring in rete
Il refactoring in rete
Il refactoring in rete
Performance