Libri per imparare SQL Server 2008, sia come amministratore che come sviluppatore, non mancano di certo. Basta fare una ricerca su Amazon o farsi un giro in qualsiasi libreria ben fornita per rendersene subito conto. Chi però, conoscendo già l’argomento, ha bisogno di fare quel salto di qualità che lo distingua da tutti gli altri sedicenti “esperti”, si scontra con una certa ristrettezza di materiale, soprattutto di una certa qualità.
Un modo per rimediare può essere allora quello di scandagliare internet alla ricerca di articoli di approfondimento: e qua se ne va tanto tempo, senza contare il fatto di leggere spesso le stesse cose (ripetute da fonti diverse), immerse in una notevole quantità di “rumore” circostante.
Ecco allora che i 30-40 euro spesi per un libro di qualità vengono subito ampiamente ripagati dal fatto di avere una fonte ben organizzata e organica da cui studiare, approfondire e prendere spunto.
Le poco più di 400 pagine che costituiscono questo recente libro della Apress, dal titolo direi molto eloquente, rispondono perfettamente a questa esigenza.
Sempre su Amazon, mi ha sorpreso molto notare la mancanza di recensioni per questo libro: nessun lettore, infatti, ha postato un commento.
Avendo come presupposto che il lettore sia già bene a conoscenza di SQL Server 2008, in 12 capitoli gli autori affrontano argomenti piuttosto eterogenei, che rappresentano la maggior fonte di problemi, dubbi, incertezze e cattive implementazioni di sviluppo che affliggono gli sviluppatori di database ed anche i DBA.
Non viene spiegato come funziona la “Coalesce” o le CTE (giusto per fare due esempi tra i tanti), ma, tramite numerosi casi reali si mette in guardia il lettore dai possibili problemi a cui può andare incontro se le implementa in un modo piuttosto che in altro. Come detto le arene di dibattito sono le più diverse: si parla di concorrenza nell’elaborazione dei dati, di gestione del Dynamic SQL, dei tipo di dati temporali e geografici, di crittazione, della gestione degli errori e delle eccezioni, e persino dell’uso del CLR per crearsi della logica utilizzando un linguaggio ad oggetti gestito (in questo libro viene usato C#).
Come si capisce di carne al fuoco ce n’è davvero tanta e diversa, e per questo direi che non è necessario leggere il libro in sequenza, capitolo dopo capitolo.
I primi 4 di questi consiglierei però di leggerli uno dopo l’altro e di non saltarli. A parte le 20 pagine del primo capitolo introduttivo, già nel secondo gli autori riescono a far riflettere non poco il lettore parlando di “Defensive Programming”, un’idea decisamente interessante che presuppone di sviluppare il proprio codice mettendosi nella peggiore situazione possibile (dati incoerenti o mancanti, errori di input, di rete, ecc. ecc.), in modo da rendere la propria soluzione di sviluppo la più robusta possibile.
Tant’è che nel terzo capitolo già si parla di testing, argomento che spesso non è facile far rientrare nelle proprie attività per chi sviluppa con SQL Server.
Gli esempi di codice che vengono riportati sono scritti tutti in un leggero grassetto, che li rende facilmente leggibili (a ciò contribuisce anche l’ottima indentazione). Prima vengono mostrate le soluzioni sbagliate, e poi man mano le si “aggiusta” per poter arrivare all’optimum. Appunto per questo consigliere di non leggere un libro come questo con sessioni di lettura molto brevi: lo si lascerebbe con in mente le soluzioni sbagliate, e soprattutto con il dubbio e la curiosità di “come andrà a finire”.
Personalmente ci ho dedicato un minimo di un’ora alla volta, anche se quasi sempre non è sufficiente per concludere completamente un capitolo.
Il resto dei capitoli può essere affrontato in ordine sparso a seconda delle esigenze. Io ho trovato utilissimi i capitoli 8 – sul Dynamic T-SQL – il 9 – sulla gestione della concorrenza e delle transazioni – e l’undicesimo sulla gestione delle date.
Di immagini ce ne sono pochissime – in genere diagrammi – e addirittura nessuna schermata di SQL Server o Management Studio. Si da’ per scontato che il lettore sappia già come muoversi nell’ambiente di sviluppo, e ci si concentra solo sul puro codice, che è in C# quando si affrontano esempi non in T-SQL.
L’inglese direi che è comprensibile, anche se ogni tanto bisogna appoggiarsi al dizionario per conoscere il significato di termini poco comuni o di slang tipico americano.
Stranamente, nelle prime pagine del libro dove in genere vengono riportati i profili degli autori, manca quello di Adam Machanic, ma è presente solo quello di Alastair Aitchison.
.
A quanto pare, però, Adam Machanic non ha nulla a che fare con questo libro.
Avendogli mandato una mail tempo fa, mi ha risposto appunto che lui aveva scritto solo la precedente edizione di questo titolo, quella relativa a SQL Server 2005, e che probabilmente la casa editrice ha deciso di mettere in copertina il suo nome anche in questa ultima release del libro solo per riuscire a vendere più copie.
Purtroppo non dispongo anche della versione “2005” per capire se questa
La rilegatura è buona, e abbastanza flessibile da permettere una comoda lettura (si trova di meglio, comunque, in giro).
L’impaginazione è quella classica dei libri Apress: caratteri piccoli, pagine “dense” e poche immagini.
Il codice T-SQL risulta sempre ben indentato ed è scritto quasi tutto in grassetto (scelta piuttosto originale, ma risulta comunque ottimamente leggibile).
Segnalerei due piccoli problemi: innanzitutto il sommario dettagliato presente nelle prime pagine ha le righe troppo distanziate tra loro (la cosiddetta “interlinea”). Occupa quindi troppe pagine, ed è un po’ scomodo da leggere. Inoltre il “Summary” del capitolo sul Dynamic T-SQL (l’ottavo) è ripetuto erroneamente due volte.
Attualmente la pagina delle Errata relativa a questo libro sul sito della Apress è vuota.
Effettivamente non mi sembra di aver trovato refusi od errori nel codice, e questo è già un buon risultato.
Questa è la pagina del sito della Apress dedicata al libro.
Purtroppo non c’è nulla di scaricabile, nemmeno il sommario. Sarebbe stato molto utile invece avere il codice sorgente degli esempi, per poterli provare o per utilizzarli al bisogno. Attualmente l’unico modo per fare ciò sarebbe di acquistare la versione in Pdf del libro. Per chi già possiede la versione cartacea, il prezzo è tutto sommato conveniente, solo 10 dollari. Basta collegarsi ad una sezione apposita del sito, rispondere ad una domanda random (del tipo “A che pagina si trova l’immagine XX?” oppure “Quale è la prima parola della pagina YY?”) per ottenere la versione elettronica.
PRO
Per chi già conosce bene SQL Server (meglio se nella versione 2008), questo piccolo libro è una vera miniera di consigli e best practices indirizzati principalmente a chi lo affronta come sviluppatore. Il tono colloquiale dell’autore e gli esempi mirati lo rendono didatticamente ineccepibile.
CONTRO
Nulla di particolare da rilevare, tranne solo due dettagli. Il primo riguarda il sommario dettagliato presente nelle prime pagine del libro. Le righe sono troppo spaziate, e il tutto occupa troppe pagine rispetto a quelle che sarebbero state necessarie. Il secondo riguarda il prezzo, forse troppo elevato rispetto alle dimensioni del libro.
Voto complessivo: 9/10
Lettore: Intermedio / Avanzato
Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Preface
1 - Cap. 1: Software development methodologies for the database world
23 - Cap. 2: Best practices for database programming
49 - Cap. 3: Testing database routines
71 - Cap. 4: Errors and exceptions
101 - Cap. 5: Privilege and authorization
121 - Cap. 6: Encryption
159 - Cap. 7: SQLCLR: Architecture and Design Considerations
195 - Cap. 8: Dynamic T-SQL
235 - Cap. 9: Design Systems for Applications Concurrency
283 - Cap. 10: Working with Spatial Data
321 - Cap. 11: Working with Temporal Data
371 - Cap. 12: Trees, Hierarchies and Graphs
419 - Index
Qua sotto i dettagli del libro.