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). |
Durata: 1-3 giorni, in funzione dei pattern esaminati, del numero di esercizi svolti, della modalita' di svolgimento degli esercizi (con discussione pubblica e confronto dei risultati o meno). Come sempre, e' possibile proseguire con attivita' di mentoring su problematiche aziendali. Partecipanti: Massimo 15 Prerequisiti: Il corso è adatto a chiunque voglia progettare ad oggetti, indipendentemente dal linguaggio di programmazione. Tuttavia, oltre ad una buona familiarità con i concetti di base della programmazione ad oggetti (classi, oggetti, ecc), richiede una certa familiarita' anche con le problematiche di software design. Per chi non ha la sufficiente formazione e/o esperienza, e' consigliabile iniziare con un corso dai prerequisiti minori, in particolare il Laboratorio di Object Oriented Design. Pur utilizzando anche alcuni semplici diagrammi UML, la conoscenza di UML non e' necessaria. Corsi correlati: |
Nota: di norma viene selezionato solo un sottoinsieme degli esercizi e dei pattern qui descritti.
Software Design e Design Pattern
|
Il concetto di pattern e' ormai ben consolidato, e prepare un corso sull'argomento e' teoricamente semplice: basta copiare un libro, ispirarsi ad uno dei tanti articoli o magari a delle slide reperibili online. Cio' che non e' facile sostituire e' l'esperienza reale. Aver progettato decine di sistemi, nei settori applicativi piu' svariati. Aver applicato e combinato realmente i vari design pattern. Aver visto sul campo come la conoscenza diffusa dei pattern possa cambiare la comunicazione nei team di sviluppo. Ma soprattutto, avere la maturita' progettuale per poter analizzare a fondo le diverse soluzioni, pesandone i pro ed i contro, mostrando i pregi ma anche gli inevitabili limiti anche nelle soluzioni pattern-based. Tutto questo richiede anni di pratica, e non si puo' facilmente scaricare da un sito. Anche per questo ho creato un corso fortemente personalizzabile. I settori applicativi non sono tutti uguali, le forze che si incontrano progettando un sistema business o un sistema embedded sono del tutto diverse, e parlare in termini astratti durante una sessione di design ha un rendimento molto basso. Per la stessa ragione, nei tempi e modi dovuti, sono sempre disponibile ad introdurre nuovi pattern nel materiale formativo, ogni volta che si presenti la necessita' di focalizzare l'attenzione dei partecipanti su concetti particolarmente rilevanti per le loro problematiche specifiche. Il corso e' un "secondo passo" ideale nella formazione dei progettisti. Chi vorra' iniziare con me un un percorso formativo sulla progettazione potra' poi proseguire con lo studio del metodo SysOOD (che ho ideato alla fine degli anni 90), ed esplorare magari l'approccio del Forcefield che sto sviluppando negli ultimi anni. |
Per ogni approfondimento sul corso, per ricevere un'offerta, pianificare una data,
discutere eventuali personalizzazioni degli argomenti o degli esercizi, ecc, contattatemi
via email all'indirizzo corsi@eptacom.net
o telefonicamente al numero 019-9246391. Nota: il corso viene svolto unicamente presso le aziende. Al momento, non e' prevista l'iscrizione come singoli partecipanti. |