Review del libro Expert PHP 5 Tools

In questi giorni ho avuto il piacere di leggere un libro molto interessante che parla di programmazione (in lingua inglese) usando il linguaggio PHP 5: Expert PHP 5 Tools.

Dando per scontate le basi del linguaggio, che si possono trovare in centinaia di altri titoli, questo libro concentra i propri sforzi intorno ai tool che possiamo utilizzare per rendere il nostro lavoro più produttivo, semplice e definitivamente migliore.

Le oltre 400 pagine, divise in 10 capitoli, introducono e spiegano in ogni dettaglio svariati argomenti avanzati e di sicuro interesse per lo sviluppatore/architect. Vediamo ciascuno nel dettaglio.

Coding Style and Standards

La scelta di uno stile di scrittura del codice non è una operazione semplice: dipende dalle abitudini, dal framework di riferimento preferito, da regole interne al gruppo di sviluppo.

Ecco alcune informazioni teoriche ed spiegazioni per rendere operativo il tool PHP_CodeSniffer e customizzarlo per le nostre esigenze.

Documentation with phpDocumentor

La documentazione a livello di codice è fondamentale, per se e per i collaboratori che dovranno interagire con il nostro codice. I DocBlocks sono spezzoni di commento formattati in modo particolare, in modo da poter essere interpretati da phpDocumentor, un tool in grado di estrapolare questi commenti dal codice sorgente e generare una serie di documenti facilmente leggibili e stampabili.

The Eclipse IDE

Eclipse è una delle IDE Open Source più diffuse. Non solo, il plugin per PHP è utilizzato da altre IDE come Aptana Studio. Ecco come configurare correttamente questa IDE per lo sviluppo PHP.

Source Code and Version Control

I benefici dell'uso di uno strumento di controllo delle revisioni sono talmente tanti che non li elenco. E' uno strumento obbligatorio per chiunque, tanto per il gruppo di sviluppatori, tanto per il singolo.

Senza contare che avere un repository online permette un facile backup del codice ed un deploying automatizzato.

In questo capitolo viene analizzato nel dettaglio il sistema più diffuso, Subversion.

Debugging

Ciascuno sviluppatore ha un metodo preferito per il debug di una applicazione: dall'uso di var_dump ed echo fino alle funzioni dedicate di php, come debug_backtrace().

Il passo successivo è l'utilizzo di un tool avanzato come Xdebug, o Zend Debugger. Viene analizzato il primo, Xdebug, nel dettaglio.

PHP Frameworks

C'è a chi piace e a chi no, ma un framework di sviluppo rende la vita sicuramente più semplice e consente allo sviluppatore di generare codice sicuro e con meno bug possibili. Il framework di riferimento dipende dall'ambiente operativo e da scelte che spesso non possiamo condizionare. Qui viene analizzato Zend Framework.

Testing

Come può un libro di questo calibro non prendere in considerazione il testing delle applicazioni? Dopo aver introdotto i vari metodi di testing (black, white, gray box) ed i tipi di test (unit, integration, regression, system, user acceptance testing) viene spiegato in dettaglio come utilizzare PHPUnit per eseguire unit test.

Deploying Applications

Alla carrellata di tool sviluppati in PHP, pensati per sviluppatori PHP, non si può assolutamente ignorare Phing. Questo tool è il corrispettivo di Ant, popolare nel mondo Java (ma non solo). Ecco come configurarlo, utilizzarlo e fare il setup di un sistema di deploying automatizzato.

PHP Application Design with UML

Viene brevemente introdotto UML come tool di sviluppo, ma UML è molto di più e non può essere spiegato così brevemente in 30 pagine.

Questa spiegazione può essere una ottima infarinatura iniziale, ma per motivi di spazio e di topic non può certo essere esaustiva.

Continuous Integration

Come conclusione viene spiegato come combinare i tool spiegati nei capitoli precedenti ed organizzare un ambiente di Continuous Integration e lavorare nel miglior modo possibile nel gruppo di sviluppo.

Usando phpUnderControl (o in alternativa XINC) è possibile configurare un server che esegua in modo automatico le operazioni di controllo della conformità agli stili di codice, build, unit test e generazione della documentazione, allertando chi di dovere in caso di problemi.

In definitiva un libro eccezionale per chi si dedica seriamente allo sviluppo PHP e vuole fare un grosso passo avanti nei propri metodi ed abitudini quotidiane.