Avanscoperta

Refactoring Legacy Code

Riprendiamo il controllo delle legacy codebases

Smell, shortcuts, Golden Master e tests: gli ingredienti per trasformare il tuo codice puzzolente in clean code.
Per la ricetta iscriviti al corso di Matteo… lo chef del codice!
Emanuele DelBono – Codice Plastico

L’obiettivo di questo corso è fare luce su due argomenti distinti ma relazionati tra loro: riprendere il controllo e la fiducia di una codebase legacy e applicare diverse strategie di refactoring che permettano in modo pratico e sicuro l’evoluzione del design dell’applicazione.

Nel lavoro quotidiano non c’è tempo per imparare a fare questo, proprio a causa del troppo tempo speso sulle difficoltà introdotte dalla codebase legacy, minando così la competitività del business.

La maggior parte dei corsi e delle tecnologie è focalizzata sullo scrivere nuovo codice. In realtà il 90% del tempo che il programmatore passa sul codice è per manutenere codebase già scritte, il più delle volte da altri e sicuramente non testate. Ogni modifica è così rischiosa, tanto da trasformare il programmatore in un artificiere.

Rimettere sotto controllo codice legacy è una disciplina ben precisa, con strumenti ed approcci consolidati e di provata efficacia.

Programma

Durante il corso – mani sulla tastiera – metteremo in pratica tutte le tecniche che ci permetteranno di riconquistare il controllo di una codebase legacy, di ridurre giorno dopo giorno il costo e il rischio associato al continuo cambiamento del software e, in definitiva, di riconquistare la competitività del business che questo codice sostiene.

Argomenti

Non tratteremo né una tecnologia rivoluzionaria né un super-nuovo-fiammante framework, ma solo del metodo che permette di raggiungere i propri obiettivi in un terreno difficile come quello delle codebase legacy.

Le skill che apprenderete vi renderanno programmatori migliori, più professionali e vi serviranno “oggi” come “domani” quando affronterete la vostra nuova avventura.

Cosa impareremo

Abbiamo strutturato le due giornate in modo tale che alla fine del corso avrete acquisito:

  • varie tecniche di testing (black e white box)
  • le principali mosse di refactoring
  • le code smell più comuni;

e sarete in grado di:

  • sfruttare il ciclo del Test Driven-Development
  • rompere le dipendenze (esplicite ed implicite)
  • applicare le 4 regole del Simple Design
  • ridurre il rischio nel cambiamento tramite isolamento.

A chi si rivolge?

Sviluppatori professionisti (con diversi livelli di esperienza) impegnati quotidianamente nello sviluppo di feature di un prodotto.

Startupper che vogliono trasformare il proprio prototipo in un’applicazione stabile e scalabile senza compromettere la velocità di sviluppo.

Studenti che si affacciano sul mondo del lavoro e che vogliono conoscere gli strumenti che gli permetteranno di essere subito produttivi in codebase estranee.

Materiale

Il corso prevede che le esercitazioni avvengano sul vostro portatile. È possibile lavorare da soli o in coppia.
Lavoreremo su codebase opensource disponibili su GitHub.

Tecnologia

Le esercitazioni pratiche saranno svolte in C#.

Prerequisiti

Pochi ma essenziali:

  • Visual Studio (dalla versione 2012 in poi, anche la Free Community Edition)
  • ReSharper (dalla versione 9.0 in poi)
  • il vostro TestRunner di fiducia (ne offrono uno sia VS che R#)
  • Git.

F.A.Q.

Come devo prepararmi per il corso?
Non è richiesta nessuna preparazione o particolare skill se non la conoscenza del linguaggi e dell’ambiente di sviluppo utilizzato.

È un corso per principianti o per esperti?
Basta avere un buon livello di conoscenza del linguaggio e di concetti dell’OOP come per esempio polimorfismo, interfacce ed ereditarietà.

Io programmo in Java, come mi può essere utile questo corso?
Le tecniche che impareremo sia di testing che di refactoring possono essere applicate anche ad altri linguaggi di programmazione.
Per avere un ambiente di sviluppo .NET completo ed adatto al corso, potete installare Visual Studio Free Community Edition.

Esercitazioni vs teoria: in che percentuale possono essere definite?
La parola chiave di questo corso è “pratica”: i momenti di teoria saranno pochi, ma essenziali. Diciamo 30% teoria e 70% pratica.

N.B.

La classe sarà composta da un numero massimo di 12 partecipanti. Ci riserviamo la possibilità di posticiparlo o annullarlo qualora il numero minimo non fosse raggiunto.

Nel prezzo del biglietto sono compresi anche due coffee break e il pranzo insieme al docente e agli altri corsisti. Perché il networking è importante! :)

Dubbi, domande? Scriveteci: [email protected]

Matteo Baglini

Da sempre focalizzato su semplicità e costo del cambiamento in modo da creare codebase che si adattano facilmente alla continua evoluzione del business.

Matteo ha maturato esperienza in molteplici domini e ambienti tecnologici (web, desktop, embedded, mobile), con una forte attenzione a clean code, design evolutivo ed architettura.

La curiosità e un costante desiderio di migliorare lo hanno portato a compiere un lungo viaggio fatto di studio e pratica alla scoperta di modi migliori di sviluppare software.

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







    NEWSLETTER

    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

    ISCRIVITI ALLA NEWSLETTER :-)

    Iscriviti alla newsletter!