Applicare i Design Pattern - Corso Aziendale


Descrizione Dettagli Programma Peculiarità Contatti
 
Un buon architetto possiede senza dubbio molti libri di architettura. Non solo libri di teoria, ma testi che esaminano i lavori di altri architetti. Studiare le soluzioni, le forme, gli approcci di altri professionisti aumenta il nostro bagaglio culturale e ci permette di attingere ad una esperienza piu' vasta.

Nel mondo del software, e' raro trovare un testo che esamini nel dettaglio le architetture adottate in progetti reali. Esiste pero' una letteratura molto ampia, e di grande interesse, che riprende soluzioni sperimentate a problemi ricorrenti (tipicamente di piccola scala), documentate nel loro contesto, ovvero considerando le diverse forze al contorno. Il trittico problema-contesto-soluzione prende il nome di pattern.

I pattern non sono solo un modo concreto ed efficace per trasferire la conoscenza e l'esperienza dei progettisti: un team che conosce a fondo i pattern comunica anche ad un livello di astrazione superiore, estendendo il proprio vocabolario con nuovi concetti. Come dico spesso, i pattern aumentano la banda passante nella comunicazione umana. Di fatto, tutta la letteratura moderna sul design del software prevede la conoscenza dei principali design pattern.

Il corso e' nato con lo scopo di familiarizzare i partecipanti con i concetti di pattern e pattern language, e di mostrare attraverso una serie di esercizi come progettare un sistema utilizzando (anche) i design pattern. I pattern non vengono quindi mostrati in isolamento, come spesso avviene nei testi. Si inizia con un problema di design, che viene affrontato a gruppi dai partecipanti. Si analizzano le soluzioni trovate (dove non di rado emergono gia' diversi pattern). Vengono poi presentati alcuni pattern utili alla soluzione del problema, e mostrato come combinandoli si possa arrivare a bilanciare in modo opportuno le diverse forze ed esigenze.

L'approccio e' quindi fortemente interattivo, e pone la giusta attenzione a tutti gli aspetti di utilizzo dei pattern, dalla fase generativa durante la progettazione a quella comunicativa durante la documentazione o il reverse engineering.

E' possibile personalizzare i contenuti del corso scegliendo tra diversi esercizi e, conseguentemente, pattern. In genere, e' consigliabile prevedere sempre alcuni pattern general-purpose su cui svolgere i primi esercizi. In coda, e' spesso utile esaminare pattern specifici per settori applicativi o tecnologie utilizzate (pattern per sistemi embedded/real-time, pattern per applicazioni web, pattern per sistemi interattivi, ecc).