Code Refactoring
Corso
A Roma
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Descrizione
-
Tipologia
Corso
-
Luogo
Roma
-
Durata
5 Giorni
Obiettivo del corso: Il corso di Code Refactoring ha l'obiettivo di mostrare ai partecipanti i diversi approcci al refactoring: preventivo e correttivo. Particolare attenzione verrà posta nell'identificazione e rimozione dei code smells mediante le principali tecniche di refactoring. Rivolto a: Il corso di Code Refactoring si rivolge a designer e sviluppatori.
Sedi e date
Luogo
Inizio del corso
Inizio del corso
Profilo del corso
I partecipanti devono possedere una discreta esperienza di programmazione in un linguaggio strutturato e conoscenza delle basi di programmazione orientata agli oggetti.
Opinioni
Programma
Presentazione del corso:
Refactoring è il processo di cambiamento su un sistema software che non altera il comportamento esterno del codice, ma ne migliora la struttura interna. È un modo disciplinato per pulire il codice minimizzando così le possibilità di introdurre bugs.
Applicando il refactoring, si ottengono una serie di trasformazioni al sistema tali che:
- non si altera il comportamento atteso (passano tutti i test);
- si rimuove il codice duplicato;
- si rimuovono le complessità non necessarie;
- si aumenta la qualità del Software;
- si rende il codice più comprensibile;
- si rende il codice più flessibile;
- si rende il codice più semplice da modificare.
Il corso di Code Refactoring si compone di nove moduli.
1. Refactoring
- Un po' di storia
- Definizione di Refactoring
- Obiettivi del Refactoring
- Prerequisiti per fare Refactoring
- Importanza e conseguenze del Refactoring
- Quando fare Refactoring
- Quando non fare Refactoring
- Classificazione delle tecniche di Refactoring
2. Composizione di metodi
- Extract Method
- Inline Method
- Inline Temp
- Replace Temp with Query
- Introduce Explaining Variable
- Split Temporary Variable
- Remove Assignments to Parameters
- Replace Method with Method Object
- Substitute Algorithm
3. Spostamenti fra oggetti
- Move Method
- Move Field
- Extract Class
- Inline Class
- Hide Delegate
- Remove Middle Man
- Introduce Foreign Method
- Introduce Local Extension
4. Organizzazione dei dati
- Self Encapsulate Field
- Replace Data Value with Object
- Change Value to Reference
- Change Reference to Value
- Replace Array with Object
- Change Unidirectional Association to Bidirectional
- Change Bidirectional Association to Unidirectional
- Replace Magic Number with Symbolic Constant
- Encapsulate Field
- Encapsulate Collection
- Replace Record with Data Class
- Replace Type Code with Class
- Replace Type Code with Subclasses
- Replace Subclass with Fields
5. Semplificazione di espressioni condizionali
- Decompose Conditional
- Consolidate Conditional Expression
- Consolidate Duplicate Conditional Fragments
- Remove Control Flag
- Replace Nested Conditional with Guard Clauses
- Replace Conditional with Polymorphism
6. Semplificazione di invocazioni di metodi
- Rename Method
- Add Parameter
- Remove Parameter
- Separate Query from Modifier
- Parameterize Method
- Replace Parameter with Explicit Methods
- Preserve Whole Object
- Replace Parameter with Method
- Introduce Parameter Object
- Remove Setting Method
- Hide Method
- Replace Constructor with Factory Method
- Encapsulate Downcast
- Replace Error Code with Exception
- Replace Exception with Test
7. Gestione delle generalizzazioni
- Pull Up Field
- Pull Up Method
- Pull Up Constructor Body
- Push Down Method
- Push Down Field
- Extract Subclass
- Extract Superclass
- Extract Interface
- Collapse Hierarchy
- Form Template Method
- Replace Inheritance with Delegation
- Replace Delegation with Inheritance
8. Code smell
- Duplicated Code
- Long Method
- Large Class
- Long Parameter List
- Divergent Change
- Shotgun Surgery
- Parallel Inheritance Hierarchies
- Feature Envy
- Data Clumps
- Primitive Obsession
- Switch Statements
- Lazy Class
- Speculative Generality
- Temporary Field
- Message Chains
- Middle Man
- Inappropriate Intimacy
- Alternative Classes with Different Interfaces
- Incomplete Library Class
- Data Class
- Refused Bequest
- Comments
9. Supporto degli IDE al refactoring
- Tool di refactoring di Eclipse
- Tool di refactoring di IntelliJ IDEA
- Plugin di refactoring
Ulteriori informazioni
Per completare il percorso formativo, si consiglia di leggere uno dei seguenti libri: * Refactoring to patterns (Kerievsky) [libro cartaceo] * Refactoring: Improving the Design of Existing Code (Fowler, Bech, Brant) [libro cartaceo]
Alunni per classe: 6
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Code Refactoring