Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicit� Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
PHP Best Practices
Recensito da Stefano Maraspin il 14-11-2012 ore 22:48
Copertina ISBN: 9788866040743
Autori: GrUSP (autori vari)
Editore: Edizioni FAG
Lingua: Italiano
Anno: 2012
Pagine: 544
Allegati: Nessuno
Si tratta di un libro di livello intermedio, ovvero per chi ha gi esperienza di sviluppo, anche se non specifica con PHP, oppure per chi ha gi utilizzato il linguaggio, ma si sempre limitato alle pratiche pi semplici/comuni. Anche i pi esperti potranno probabilmente trovare utili spunti (i contenuti sono parecchi), ma posso ipotizzare che molti concetti saranno a loro gi noti. Tutti i capitoli sono infatti scritti e argomentati in modo chiaro, ma pochi di essi si spingono davvero a fondo. Trattasi insomma di un ottimo libro, per conoscere l'ecosistema PHP e mettere lo sviluppatore in grado di fare le scelte giuste.

Certamente ci sono capitoli che si distinguono dagli altri per chiarezza, efficacia espositiva, originalit e completezza; ho personalmente gradito molto i capitoli: 1, 6, 8, 11, 14. Ve ne sono altri che ho invece trovato un po' "freddi", e che avrebbero secondo me beneficiato di qualche consiglio personale in pi da parte dell'autore. Sono insomma una valida referenza, ma non mettono in sufficiente evidenza quelle che sono davvero le best practice adottabili.

Sempre a proposito di best practices, sono rimasto colpito, a dire il vero, di non aver trovato una parte del dedicata specificatamente ai coding standard, magari con qualche indicazione sui pro e contro delle alternative disponibili e delle proposte di standardizzazione.

Il capitolo 1 introduce in modo conciso ma efficace la community del mondo PHP; fornisce al lettore una rapida panoramica sullo stato di sviluppo del linguaggio e delle community che ruotano attorno ad esso. Il capitolo 2 presenta una serie di costrutti del linguaggio sicuramente sconosciuti a molti; in alcune parti decisamente chiaro (es. feature di PHP 5.4), mentre lo meno in altre. Chi non ha familiarit con i concetti esposti potrebbe cos necessitare di qualche esperimento condotto per conto proprio, o la consultazione di altre fonti per comprendere a fondo tutto quanto presentato. Fornisce comunque una buona panoramica su diversi costrutti del linguaggio.

Il capitolo 3 offre una panoramica sulla SPL (Standard PHP Library), ma purtroppo si tratta di mero riferimento alle funzioni di libreria, mancano infatti esempi pratici sull'utilizzo dei costrutti presentati e non vengono, tra l'altro contemplate le classi riguardanti le strutture dati.

Il quarto capitolo estremamente discorsivo, articolato e corredato da considerazioni anche di derivazione non tecnica. Si vedono spesso atrocit in materia di gestione di date e intervalli temporali nei progetti PHP, perci reputo il capitolo uno dei pi appropriati per quanto riguarda ci che ricade sotto la denominazione di best practice.

Il capitolo 5 offre una buona panoramica sui sistemi di cache disponibili, e offre anche qualche buon consiglio/spunto di soluzione a livello architetturale.

Il sesto capitolo uno di quelli secondo me pi completi, dato che fornisce numerosi spunti e consigli non solo per lo sviluppo, ma anche per il debug di web service. In modo sintetico, presenta molti concetti e consigli validi.

Il capitolo 7 offre invece un'overview sull'utilizzo di PHP nel cloud. Seppur non esaustivo (per ovvii motivi di spazio), offre comunque un'adeguata panoramica su quella che l'offerta dei maggiori fornitori di servizi cloud.

Il capitolo 8 quello che probabilmente richiede pi impegno da parte del lettore meno esperto, ma che introduce in modo chiaro diversi design pattern: factory, adapter, template, observer, composite. Introduce anche alcuni pattern enterprise (Repository, Front Controller, Dependency Injection, etc.), sempre in modo chiaro, o comunque reso chiaro attraverso opportuni esempi. E un capitolo molto ben fatto, ma probabilmente impegnativo, per chi non ha familiarit con i concetti introdotti. Per questo, poteva forse essere suddiviso in due o pi parti.

Il nono capitolo introduce con chiarezza e completezza diversi aspetti relativi alla sicurezza e alla cifratura. Qualche parola d'introduzione poteva forse essere spesa sui prepared statements PDO, per chi non ne ha mai sentito parlare, essendo gli stessi introdotti in un esempio, senza alcuna premessa, ma comunque con riferimenti alla documentazione ufficiale.

Il capitolo 10 scritto, secondo me, molto bene. L'ho trovato valido e completo. Qualche parola in pi poteva forse essere spesa, a livello generale, per quanto riguarda la gestione di un workflow di deployment, anche se il capitolo che segue, l'undicesimo, ne costituisce un valido complemento, rappresentando un'altra fonte di consigli e suggerimenti utili, da parte di chi evidentemente conosce molto bene la materia della continuous integration.

Fossi stato nell'editore, avrei fatto precedere il dodicesimo capitolo 12 al decimo, per coerenza con un tipico workflow. L'enfasi per lo pi sugli aspetti organizzativi del testing, sul TDD e sulle motivazioni alla base di approcci allo sviluppo e al testing di tipo agile/iterativo. Concetti tutti molto interessanti, esposti in modo chiaro e piacevole da leggere. A mio avviso, sarebbe stato interessante introdurre un complemento sulla testabilit del codice, ovvero su come scrivere o rifattorizzare codice che mal si presta al testing. Vero che con il TDD difficile scrivere codice che sia difficile da testare e che di libri sul refactoring in PHP gi ne esistono. Capitolo che perci non forse esaustivo sotto tutti i punti di vista, ma che sicuramente indirizza il lettore nella giusta direzione.

Il capitolo 13 uno di quelli da cui mi sarei atteso qualcosa in pi. Fornisce sicuramente una panoramica valida ed esaustiva sugli strumenti disponibili per quanto riguarda l'analisi statica del codice sorgente. Mi sarei per aspettato meno referenze e pi consigli da parte dell'autore sulle metriche davvero importanti e sull'interpretazione dei dati ottenuti. Il mio timore che chi non ha sufficiente esperienza, in assenza di qualche consiglio, possa essere fuorviato da indici tutto sommato secondari e portato a considerare aspetti non fondamentali, a discapito di altri.

Proprio considerazioni di questo tipo sono promosse, secondo me impeccabilmente, nel capitolo successivo, il quattordicesimo, in cui sono forniti consigli concreti per evitare le (inutili) micro ottimizzazioni e trovare (quando serve) quelli che sono davvero i colli di bottiglia di un'applicazione. Un'ottima introduzione al profiling e tuning di un'applicazione PHP. Il capitolo chiude insomma in bellezza un buon libro, che sono personalmente contento di avere in libreria.
proIl libro copre una grande quantit di contenuti, e sicuramente uno sviluppatore "intermedio" potr trovare parecchie informazioni utili. I capitoli non dipendono l'uno dall'altro, perci il libro pu essere letto anche non linearmente, senza perdere il filo del discorso. Il rapporto qualit+quantit/prezzo decisamente adeguato.
controConsiderato il titolo del libro, certi capitoli avrebbero potuto dare di pi; alcuni sono purtroppo poco pi che referenze. Qualche informazione in pi sulle buone pratiche di programmazione OO (di base), sulla configurazione di un'applicazione (gestione degli errori, logging) in diversi ambienti (sviluppo, staging, produzione), oltre che una parte dedicata al coding standard e alle buone pratiche di scrittura del codice potevano starci bene.
Precedente: Programmare con stile
Successiva: Tecnologie web per l'auto
Intervento di Davide Lucciano a.k.a. lucciano del 29-01-2013 ore 09:45, Benevento (BN)
Plebeo
Plebeo
(5 interventi)
Iscritto il 31-12-2012
Il manuale adatto anche per chi sa solo qualcosina di Php?
Copyright Programmazione.it™ 1999-2017. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.154 secondi.