Comincio questa mia piccola recensione ringraziando tutti coloro che organizzano questi tipi di incontri perchè permettono sia una migliore conoscenza delle tematiche più squisitamente tecniche sia un costruttivo scambio di idee con molti ed eterogenei sviluppatori.
Dopo questa breve premessa (==ruffianata) iniziale posso dire che la giornata è cominciata alle 10.20 ( odio personalmente perdere tempo così ma a volte è inevitabile) con una breve introduzione di Andrea che ha proposto il progetto GUISA; approvo questa scelta sperando che le informazioni non vengano sparpagliate fra UGI e il neonato progetto. La prima sessione di Andrea è continuata con la definizione di architettura enfatizzando i falsi luoghi comuni quale l'identificazione dell'architettura con il design; per mostrare che a volte l'architetto non fa design ma prende "solamente" delle decisioni a carattere marcatamente tecnologico Andrea ha fornito un case study (GazzaTown) riguardante un progetto da poco sviluppato.
Terminata la sessione di Andrea è stata la volta di Riccardo; la sua sessione ha introdotto l'utilizzo dell' UML 2.0 con particolare riferimento ai diagrammi dei casi d'uso, ai diagrammi di sequenza e al diagramma delle classi. Ha illustrato anche le diverse modalità con cui possono essere utilizzati i diagrammi UML evidenziando come la maggiore flessibilità venga ottenuta qualora lo si utilizzi come bozza senza focalizzarsi troppo su particolari tool di modellazione con i quali è possibile effettuare sia il forward che il reverse engineering. Le similitudini che ha fatto con le reti logiche o le reti di petri mi hanno fatto subito ricordare l'essere studente :-) Personalmente mi sarebbe piaciuto da un MVP solution architect come lui una session più simile a quella tenuta al Real Code Day... che spero giunga alla acclamata seconda edizione.
Dopo un breve e ristoratore coffee break è stata la volta di una delle session che attendevo con maggior curiosità: Andrea infatti dopo aver preso in rassegna gli ormai stravisti pattern architetturali è sceso nel "core" del discorso introducendo sia la persistence ignorance ampiamente condivisa, sia suddividendo la logica di business in logica applicativa e logica di dominio evidenziando come le business entities debbano avere il giusto grado di anemia ottenuto distribuendo appropriamente le funzionalità tra il domain model ed il service layer.
Dopo la pausa pranzo in cui ho assistito alle famose scene di ordinaria follia per accapararsi un panino, ( mi dispiace dirlo ma il servizio di catering è risultato non sufficiente rapportato al numero di persone presenti) Giada ha illustrato le politiche di licesing riferendosi alla linea di prodotti Team System. Mi spiace dirlo ma, anche se la durata è stata breve, questo tempo e non solo questo, lo avrei investito nella session seguente portata avanti da Andrea e Giancarlo. La sessione infatti è stata molto ricca di contenuti introducendo la necessità di una metodologia di mapping atta a mascherare il disallineamento presente fra Object Model e Relational Model, mostrando un duplice approccio che lo sviluppatore può affrontare nella progettazione del Data Layer:
- Scrittura DAL personale
- Utilizzo ORM
Sono stati inoltre illustrati alcuni pattern che permettono di soddisfare requisiti molto in voga quali supporto per UI eterogenee, DAL pluggabile, supporto a molteplici RDBMS ... Il mio punto di vista dopo essermi confrontato sia con GianCarlo che con Andrea e Riccardo è il seguente: se per soddisfare i requisiti si arriva a scrivere un ORM personale andando a sporcare la soluzione è molto meglio utilizzare un Orm (NiHibernate), al tempo stesso in quei contesti ( tante volte affrontati nel mondo universitario) più mission critical dove le prestazioni sono il primo requisito da soddisfare è meglio scrivere anche se a fatica una soluzione custom (NHibernate lavora tramite reflection). Detto ciò penso, come detto in un post precedente che NH semplifichi molto la vita dello sviluppatore, permettendo di investire il tempo risparmiato su decisioni altrettanto spinose...
L'ultima sessione, quella di Raffaele, ha mostrato come la sicurezza vada progettata già in fase di design; molto spesso lo sviluppatore (io in primis) trascura questa caratteristica per correre ai ripari quando ormai è troppo tardi... Interessante la parte del threat modeling e l'utilizzo di strumenti che aiutino lo sviluppatore.
Ho apprezzato il format dell'incontro anche se ritengo che alcune session avrebbero dovuto avere a disposizione un tempo maggiore in quanto secondo me o si danno dei prerequisiti ( ad es. lettura PEAA obbligatoria) oppure alcune session scorrono come quelle lezioni universitarie piene di concetti in cui ad un certo punto non segui più il filo logico. Giudizio complessivo (8/10).
p.s: Andrea ho evidenziato i costi che una associazione no-profit come UGI deve sostenere e del reale aiuto che tutta la community potrebbe dare con una piccola donazione. Impegnamoci tutti e rendiamo ancora lunga la vita di UGI...
Ad Maiora...