Nella stessa sezione
integration
javabest
agile
javame
uml-book
mokabook-2.1
mokabook-2.2
vb2java
Collegamenti
Download
Cerca un articolo


home >> edizioni-mokabyte rss-news

Tecniche di progettazione agile con Java

Design pattern, refactoring, test

Il libro

Un corso di progettazione agile che sottolinea l'importante aspetto dell'esperienza, elemento
sottostimato in informatica, dove l'ultima tecnologia sembra sempre quella che fa più tendenza.

Partendo da elementi molto pratici, come i design pattern, i metodi di refactoring e il test di unità,
questo libro tocca l'aspetto dell'esperienza, considerato dall'autore il bagaglio essenziale di uno
sviluppatore.
Per proporre un buon design è senz'altro necessario avere esperienza, del resto i design pattern
nascono dall'esperienza e sono un modo per sfruttare quella acquisita in progetti passati, addirittura
in progetti di altri.
L'esperienza è ciò che ci porta a dire che un programma, con la sua architettura, è in continua
evoluzione. È con l'esperienza che dobbiamo gestire questa evoluzione, applicando refactoring, e
rivedendo in modo continuo il design.

Il libro, con esempi pratici, costruiti e discussi in modo incrementale, cerca di mettere in relazione
i tre aspetti, a volte, a torto, considerati contradditori. Mostra come i pattern non devono
necessariamente far parte del primo design e spiega come un approccio più adattivo alla programmazione
permetta di considerare i nuovi requisiti come una naturale evoluzione dell'architettura.

Chi ritiene la programmazione una pura fase di "manovalanza" all'interno di un progetto, è portato a
ricredersi. L'utilizzo sistematico di pattern e l'evoluzione ciclica del design attraverso refactoring
riportano lo sviluppatore, con la sua personalità ed esperienza al centro del progetto. Sviluppo non
significa solo scrivere codice. Sviluppo significa prendere decisioni concernenti il design.
L'attività di sviluppo è qualcosa di creativo che richiede nel contempo grande disciplina. È
un'attività di grande responsabilità che permette di progettare, creare, controllare e fare evolvere
l'architettura e la funzionalità del progetto.

La struttura di "Tecniche di progettazione agile con Java: design pattern, refactoring, test"

Il libro, dopo un capitolo introduttivo, si sviluppa in quattro parti, ognuna delle quali è formata da
capitoli distinti, in modo da permettere una lettura anche frammentata delle singole sezioni. Gli
esempi sono tutti implementati in Java, linguaggio di riferimento per l'intero libro. Al termine delle
4 parti, viene riportata un'utile appendice con il codice degli esempi utilizzati

  • I. Visione generale: verso un design object-oriented

La prima parte si prefigge di dare una visione generale dei concetti attraverso un esempio iniziale.
Viene sviluppata una prima soluzione, ripresa e poi modificata in modo iterativo sulla base di nuovi
requisiti ed esigenze. Gli aspetti trattati sono quelli del design object-oriented in generale e degli
aspetti approfonditi nelle parti a seguire, cioè design pattern, refactoring e test.

  • II. Design pattern

I pattern di design vengono trattati nella seconda parte, che prevede, oltre a un'introduzione
sintetica sui concetti della programmazione a oggetti, capitoli riguardanti le diverse definizioni di
pattern, diversi esempi di pattern, una modifica passo per passo di un'applicazione e accenni su nuovi
pattern.

  • III. Test di unità

La terza parte prevede la spiegazione del concetto di test come elemento di sviluppo, facendo
riferimento al framework di test JUnit, largamente diffuso e utilizzato per la programmazione in Java.

  • IV. Refactoring

I metodi di refactoring vengono trattati nella quarta parte, dove, di nuovo, oltre alla spiegazione
dei concetti più significativi e all'approfondimento di alcuni metodi, l'elemento più importante è
costituito dallo sviluppo di un paio di esempi e dalle loro relative modifiche.

Leggi il libro

Scarica i capitoli di "Tecniche di progettazione agile con Java: design pattern, refactoring, test"

L'autore

Sandro Pedrazzini, ingegnere informatico al Politecnico di Zurigo e dottore in scienze naturali
all'Università di Basilea, dal 1989 suddivide il suo tempo tra sviluppo, insegnamento e ricerca,
indirizzata durante i primi anni soprattutto nel campo della linguistica computazionale.
Dalla metà degli anni Novanta insegna linguaggi, programmazione a oggetti e progettazione software
presso la SUPSI (Scuola Universitaria Professionale della Svizzera Italiana), dove è professore. Nel
1999 ha inoltre cofondato Canoo, azienda di sviluppo e consulenza, per la quale lavora tuttora come
ingegnere del software