Calendario corsi

catalogo formazione

percorsi formativi

promozione e sconti

Corso Code Refactoring (cod. ktcore)

Obiettivi A chi è rivolto Prerequisiti Moduli
Letture Consigliate Programma Completo Wiki Sconti

Informazioni
Durata 5 giorni
Prezzo: 1180 euro + Iva
Prossime date:
Numero partecipanti:: 4-8
Contattare Ufficio Corsi:
  • Tel : +39 06 6830 1467
  • Email:
  • Richiedi Informazioni


Visualizza Scheda PDF

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

 

Obiettivi Top

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 (indizi di ciò che non va nel codice) mediante le principali tecniche di Refactoring.

A chi è rivolto Top

Il corso di Code Refactoring si rivolge a designer e sviluppatori.

Prerequisiti Top

I partecipanti devono possedere una discreta esperienza di programmazione in un linguaggio strutturato e conoscenza delle basi di programmazione orientata agli oggetti.

 

Moduli Top

Il corso di Code Refactoring si compone di nove moduli:

  1. Introduzione
  2. Tecniche per la composizione di metodi
  3. Tecniche per lo spostamento fra oggetti
  4. Tecniche per l'organizzazione dei dati
  5. Tecniche per la semplificazione di espressioni condizionali
  6. Tecniche per la semplificazione di invocazioni di metodi
  7. Tecniche per la gestione delle generalizzazioni
  8. Code smell
  9. Supporto degli IDE al Refactoring

 

Letture Consigliate Top

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]

 

Programma Completo Top

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
Wiki a supporto Top

Dal primo giorno di corso, i partecipanti potranno accedere ad un wiki di supporto dove troveranno aggiornamenti sul corso, sulle relative integrazioni e documentazione di approfondimento. Sarà disponibile un sistema di segnalazione con il quale, tramite ticket, si potranno inserire suggerimenti e proposte di ampliamento al programma e al materiale del corso.

Sconti e Promozioni Top

I partecipanti che si iscriveranno al corso con almeno 30 giorni di anticipo sulla data di termine iscrizione avranno uno sconto del 10% sul prezzo. Scopri tutti gli sconti.