Recensione libro Mastering Java Server Faces 2.2

Packt PublishingLa casa editrice Packt Publishing mi ha inviato il libro “Mastering Java Server Faces 2.2” per una recensione. Scrivo le mie impressioni a vantaggio di tutti quelli interessati all’argomento.

 

Libro Mastering Java Server Faces 2.2

 

Recensione

Diciamo subito che questo libro non è per neofiti. Per ammissione stessa dell’autore esso è destinato ad una utenza medio-avanzata che abbia già almeno un po’ di esperienza sui Java Server Faces.

Il target elevato si nota subito già dal primo capitolo, nel quale viene trattato l’expression language (El 3.0). L’argomento è di quelli di base ma la trattazione, presupponendo che il lettore già abbia almeno un’infarinatura sull’argomento, correndo velocemente sulle nozioni di base, soffermandosi invece più a lungo sulle questioni più avanzate e sugli aspetti della tecnologia meno utilizzati e conosciuti.

L’esposizione risulta sempre abbastanza chiara, anche nel caso di argomenti più ostici. Ogni capitolo è arricchito da numerosi casi d’uso ed esempi. Per quest’ultimi il codice è scaricabile dal sito della packt, cosa molto utile in quanto evita al lettore di doverli ridigitare da zero (come si faceva ai tempi del commodore 64 :) ).

Il libro tratta principalmente le JSF 2.2 ma tiene in considerazione anche le versioni precedenti del framework. Particolare attenzione è posta nel descrivere quando utilizzare una certa tecnologia invece di un altra, nel caso le due si sovrappongano come accade, ad esempio, per gli scopes JSF e CDI (trattati nel capitolo 3) e per la configurazione con file xml e/o annotations ( nei capitoli 4 e 5).

In definitiva mi sembra un ottimo libro. Non è certo uno di quelli da leggere “tutto d’un fiato” (tra l’altro è un discreto tomo da 550 pagine): gli argomenti trattati sono tanti, con un livello di dettaglio elevato quindi a meno di non avere una memoria stupefacente, dopo una prima lettura sarà impossibile riuscire a ricordarne tutto il contenuto.

Piuttosto è un testo da usare come riferimento nel momento del bisogno, quando nei progetti reali si deve decidere come affrontare determinati problemi. In questi casi la rilettura di singoli capitoli permette di avere a disposizione un arsenale di tecnologie tra cui scegliere quella più adatta alla situazione.

Contenuto del libro

Capitolo 1: tratta dell’expression language (EL 3.0) e dei meccanismi di accesso dinamico ai dati dei managed-beans

Capitolo 2: si parla dei meccanismi di comunicazione tra i componenti JSF (tra cui: i context parameters, richieste GET e POST, cookies, binding attributes, ecc)

Capitolo 3: vengono spiegati i JSF scopes e le differenze con i CDI scopes. Nell’ultima parte si parla di Bean injection

Capitoli 4 e 5: vengono trattati i due modi in cui è possibile configurare il framework: XML file e annotations

Capitolo 6: questo capitolo è dedicato alla presentazione tabulare dei dati (JSF tables).

Capitolo 7: JSF e ajax… non serve dire altro

Capitolo 8: questo capitolo è diviso in due parti: nella prima viene illustrato l’uso di HTML 5 con JSF 2.2 mentre nella seconda viene discusso il nuovo componente Upload

Capitolo 9: qui vengono introdotti gli stati di JSF; in particolare si parta di come viene salvato il view state e delle stateless views di JSF 2.2.

Capitolo 10: è spiegato come realizzare componenti custom per JSF

Capitolo 11: vengono introdotti i facelet templates (modelli base per le pagine web) e la nuova funzionalità Resource Library Contracts.

Capitolo 12: qui è introdotto il facelets templating ovvero le porzioni di codice riutilizzabili e assemblabili tra loro per ottenere una pagina web.

Dettagli del libro

Titolo: Mastering JavaServer Faces 2.2

Autore: Anghel Leonard

Data Pubblicazione: Giugno 2014

Numero Pagine: 578

ISBN: 9781782176466

Link al sito: https://www.packtpub.com/application-development/mastering-javaserver-faces-22

Recensione del libro: AngularJS essentials

AngularJS Essentials

Packt Publishing

La casa editrice Packt Publishing mi ha inviato il libro “AngularJS Essentials” per una recensione. Vi scrivo in questo post le mie impressioni dopo averlo letto.

Il testo è mirato a chi vuole imparare velocemente ad utilizzare il framework javascript creato da google ma può essere utile anche a chi già ha familiarità con esso ed ha bisogno di un quick reference per richiamare alla memoria i vari concetti.

Il libro fa parte della serie “Essentials”: al suo interno vengono toccati tutti gli argomenti di maggior rilievo del framework senza però approfondire (e appesantire) troppo la trattazione.

Questo è un aspetto positivo per chi affronta da neofita l’argomento, in quanto ha la possibilità di imparare in pochi giorni tutti i concetti più importanti senza la distrazione di argomenti troppo complessi che comunque non potrebbero essere compresi a fondo in una prima fase dello studio.

Di contro, la relativa superficialità con cui vengono affrontati alcuni temi più avanzati potrebbe rendere necessaria la consultazioni di altre fonti per comprenderli più a fondo.

Copertina del libro: AngularJS Essentials

Questo testo si adatta molto bene a quanti hanno bisogno di diventare subito produttivi con il nuovo framework: il libro cartaceo permette di costruirsi velocemente (non ci vuole più di qualche giorno a finirlo) un backgroud sugli aspetti più salienti. Poi si inizia ad applicare quanto imparato ad un progetto pratico, approfondendo su internet, di volta in volta, i concetti che risultano ancora poco chiari.

Il libro è ben strutturato e di taglio molto pratico. La lettura risulta scorrevole e piacevole anche per chi non mastica bene l’inglese.

Ho apprezzato in particolare la presenza di consigli sulle best-practices da seguire per avere una applicazione ben strutturata e per evitare gli errori tipici del newbie.

Gli argomenti trattati sono i seguenti:

  1. Architettura e concetti generali
  2. Creazione di componenti riusabili con le Directives
  3. Gestione dei Dati (filtri, form validation e altro)
  4. Dependency injection e Services
  5. lo “Scope”
  6. I moduli
  7. Unit Testing
  8. Automatizzare il workflow con Grunt.

Dettagli:

Titolo: AngularJS Essentials

Autore: Rodrigo Branas

Data Pubblicazione: Agosto 2014

Numero Pagine: 180

ISBN: 9781783980086

Link al sito: https://www.packtpub.com/web-development/angularjs-essentials

Recensione del libro: Spring MVC

Packt Publishing

Ho ricevuto dalla Packt publishing il libro Spring MVC di Amuthan G da recensire.

 

Spring MVC è un framework java che permette di realizzare web-application basate sul diffusissimo pattern architetturale Model-View-Controller.

Copertina del libro Spring MVC

Copertina del libro Spring MVC

Recensione

Il libro è una beginner’s guide, quindi è rivolto ad una platea di lettori alle prime armi con il celebre framework. Per una lettura agevole viene richiesta solo una familiarità con Spring core (e i concetti correlati con la dependency injection) e con la programmazione con le servlet.

I capitoli sono articolati molto bene: si parte dai nozioni di base come la configurazione dell’ide e dell’ambiente di sviluppo e si viene accompagnati in modo graduale attraverso i concetti di Spring MVC. Già poco dopo la metà del libro, si sarà in grado di costruire una applicazione MVC discretamente complessa.

Gli ultimi tre capitoli sono dedicati ad argomenti collaterali molto importanti per completare il background culturale del lettore. In particolare si tratta:

  • dei principi base dei servizi RESTful e di AJAX [Cap 8]
  • di Spring Web Flow e Apache Tile [Cap. 9]
  • di come testare una applicazione con gli strumenti messi a disposizione da Spring [Cap. 10]

Il taglio è molto pratico e ben strutturato. L’esposizione è semplice e chiara e ogni capitolo è corredato da un certo numero di immagini che contribuiscono a rendere più semplice alcuni argomenti.

L’autore parte da una applicazione web molto basilare ed introduce, un passo alla volta, i concetti di Spring MVC, arrivando alla fine alla costruzione di un sito di e-commerce, semplice ma perfettamente funzionale.

Di seguito l’elenco degli argomenti trattati nei vari capitoli:

  1. Configurazione dell’ambiente di sviluppo
  2. Architettura di Spring MVC
  3. Implementazione di un controller e gestione delle richieste http
  4. La tag-library di Spring
  5. View-resolver
  6. Interceptor e logging
  7. Overview dei concetti di validazione degli input
  8. Ajax e Servizi RESTfull
  9. Apache Tiles e Spring web-flow
  10. Testing dell’applicazione
  11. (Appendice) Usare Gradle come build tool

Dettagli del libro:

Titolo: Spring MVC beginner’s guide
Autore: Amuthan G
Casa editrice: Packt publishing
Numero Pagine: 304
Data pubblicazione: luglio 2014
Link per l’aquisto: https://www.packtpub.com/application-development/spring-mvc-beginner’s-guide

 

Recensione del libro Alfresco CMIS

Packt Publishing Ho ricevuto dalla casa editrice Packt Publishing, l’interessante libro Alfresco CMIS per una recensione. L’argomento trattato a dovrebbe interessare chiunque decida di cimentarsi seriamente con un ECM (Alfresco in primis).

Copertina del libro Alfresco CMIS

 

Recensione

CMIS (che sta per Content Management Interoperability Services) permette lo scambio di dati con un ECM via internet, attraverso modelli di dati e protocolli standardizzati.

Il libro Alfresco CMIS introduce l’argomento in modo graduale affrontando all’inizio argomenti più generali per poi scendere in profondità nei capitoli più avanzati. La scrittura risulta sempre scorrevole e piacevole, anche nelle parti più tecniche. Gli autori ricorrono spesso a schemi o tabelle che aiutano non poco la comprensione dei concetti più complicati.

L’utente di riferimento resta principalmente lo sviluppatore Alfresco ma, soprattutto nei primi capitoli, il testo può risultare molto utile anche per chi utilizza altri ECM.

Nel primo capitolo viene introdotto lo standard CMIS, elencando i motivi che hanno portato al suo sviluppo, i suoi punti di forza ed i possibili scenari di utilizzo.

Il secondo e terzo capitolo si concentrano sulle operazioni messe a disposizione dallo standard. Si parte dall’istallazione di un server CMIS (in questo caso ovviamente Alfresco) per poi parlare di autenticazione, del reperimento di informazioni dal repository, delle operazioni CRUD sui contenuti e sui metadati. Infine si approda ad argomenti avanzati come versioning, permissions e ricerche.

Sebbene il testo sia (come si deduce dal titolo) fortemente orientato agli sviluppatori di Alfresco, la trattazione di questi primi capitoli tende sempre a restare generale e il lettore viene avvertito ogni qual volta si sta affrontando un concetto che è peculiare al solo Alfresco. Inoltre tutte le operazioni sono spiegate utilizzando (in parallelo) i protocolli Atompub e RESTFul Browser: le richieste al repository vengono composte utilizzando testi XML (per atompub) e JSON (per Browser) che poi sono inviati al server tramite l’agnostico tool CURL. Questo modo “grezzo” di procedere è molto utile per conoscere i meccanismi alla base di CMIS che verrebbero invece mascherati se si usassero da subito client scritti in linguaggi di alto livello.

Nei capitoli 4 e 5 si entra nello specifico per quanto riguarda Alfresco. Viene descritta l’architettuta e alcune delle feature non presenti (o presenti in diversa forma) in altri ECM. Si passa quindi alla programmazione vera e propria, introducendo le librerie Java Apache Chemistry. La trattazione è corredata da numerosi esempi che in sostanza ripropongono -traducendole in java- tutte le operazioni trattate nei primi capitoli, aggiungendo quando necessario i casi particolari per Alfresco.

Il capitolo 6 è dedicato ad esplorare le potenzialità del nuovo Browser Binding (introdotto solo di recente nella nuova versione 1.1 dello standard CMIS). Viene mostrato come inviare richieste cmis/json tramite ajax direttamente da una pagina web ma anche come utilizzare groovy o i web-script di spring surf.

Nell’ultimo capitolo si affrontano le integrazioni tramite CMIS con altri sistemi (Drupal e Apache Camel, tanto per citarne alcuni), compreso il tanto di moda cloud.

In conclusione, Alfresco CMIS è un libro che mi sento di consigliare per la sua completezza e la sua scorrevolezza e perchè affronta in modo approfondito un argomento con cui tutti gli sviluppatori che lavorano con ECM dovranno aver a che fare nel prossimo futuro.

Chiunque sia interessato può consultare la pagina ufficiale del libro sul sito Packtpub.com

 

 

 

Articolo su ioProgrammo 191 – DropBox fai da te in java

PennaSul numero 191 di ioProgrammo c’è un mio nuovo articolo, nella sezione java.

L’argomento trattato è piuttosto pratico (assecondando il taglio voluto dall’editor per la rivista): si spiega come realizzare un watchdog che, in tempo reale, tenga sincronizzata una o più cartelle locali con una cartella remota, sulla falsariga (in modo piuttosto naif a dire il vero…) di quanto accade con servizi come dropbox o google drive.

Copertina ioProgrammo 191

Copertina del numero 191 di ioProgrammo. L’articolo è menzionato nella colonna di destra

Continue reading →