MokaByte 100 - 8bre 2005
 
MokaByte 100 - 8bre 2005 Prima pagina Cerca Home Page

 

 

 

La concretezza dei pattern e la concretezza di Mokabyte

di Sandro Pedrazzini
spedrazzini@mokabyte.it

Ho rispolverato il mio primo articolo per Mokabyte. Il titolo era: "Framework e pattern: documentare con i pattern". Si trattava del primo di tre articoli incentrati sui pattern e il loro utilizzo nell'architettura di un'applicazione.
È con grande piacere che riprendo l'argomento per questa edizione speciale del numero 100 di Mokabyte. Sono felice e fiero non solo per il traguardo editoriale della vostra/nostra pubblicazione di fiducia, ma anche per il fatto che argomenti portati cinque o sei anni fa sono ancora più che attuali. Già questo, nel nostro campo, è un evento per cui festeggiare...

L'aspetto che ho sempre apprezzato dei design pattern è il loro doppio ruolo di strumenti di design da una parte e di elementi in stretta prossimità con il codice dall'altra. Tenevo già corsi di progettazione software a quei tempi e mi interessava maggiormente la parte estetica dei pattern.
Avevo un rapporto simile con Mokabyte. Mi interessavano gli articoli per il lato informativo teorico che riuscivo a estrarre (c'erano parecchi argomenti da portare a lezione), meno per quello pratico, anche se ero già allora attivo in progetti di sviluppo.
Nell'articolo in questione dicevo che i pattern elevano il ruolo dello sviluppatore da semplice programmatore ad architetto dell'applicazione, grazie anche al grado sempre maggiore di astrazione dei linguaggi di programmazione.
Sono tuttora convinto di questo, ma non è tutto.
I pattern come siamo abituati a conoscerli, rappresentano il riutilizzo di design, l'astrazione di un'architettura che può essere ripresa ed applicata ad altri contesti. Anche per questo motivo i pattern vengono considerati qualcosa di leggero, quasi di estetico nei vari elementi ed aspetti di un programma.

Poi, assieme a Mokabyte, si è evoluto anche il mio curriculum. Con alcuni amici di università e altri colleghi conosciuti in progetti nel settore bancario, ho preso la grande decisione di partecipare alla creazione di una ditta: Canoo.
Da allora l'interesse per i pattern, così come quello per gli articoli di Mokabyte, è cambiato. Ho capito che i pattern sanno anche essere tremendamente concreti. Permettono di semplificare in modo incredibile l'architettura di un software, facilitandone la comprensione e l'utilizzo da parte di terzi. Lo stesso vale per parecchi articoli di Mokabyte. Oltre alla teoria, viene data grande importanza agli aspetti pratici, portando esempi concreti e listati di codice.
Per un esempio sui pattern, mi si conceda (visto che mi concerne direttamente), di citare l'architettura del prodotto ULC di Canoo. Si tratta di una libreria che permette lo sviluppo di applicazioni Web completamente in Java ad alto grado di interattività (anche dette RIA, rich internet application, oppure applicazioni rich thin client). La libreria permette di esporre la API di Swing a livello server, in modo che lo sviluppatore dell'applicazione si riferisca ai widgets grafici pur mantenendo l'applicazione lato server.
La "sfida" consiste nel rendere la libreria sufficientemente snella e semplice da utilizzare, dando allo sviluppatore una visione omogenea dell'applicazione.
Ebbene nell'architettura di ULC sono coinvolti almeno due pattern fondamentali, senza i quali il software rischierebbe di essere tremendamente complesso: il pattern HOPP (Half-Object Plus Protocol) e il pattern Adapter.
Non è questa la sede per entrare nel dettaglio dei due modelli. Vorrei però continuare il parallelo con Mokabyte.
Con i suoi articoli mensili è diventato un punto di riferimento irrinunciabile. Non riesco sempre a leggere tutto, ma ogni mese attendo con ansia la lista dei titoli per cercare di approfondire almeno un paio di temi.
Mokabyte mi permette in poco tempo e in modo efficace di sapere quali sono i temi più attuali del mondo Java. È una realtà virtuale, ma che si è evoluta nel tempo fino a diventare assolutamente viva, utile e concreta che accompagna tutti noi nella nostra attività. Viva, utile e concreta… come i pattern.