Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 530.266
  • Views Posts: 1.661.774
  • Views Gallerie: 891.884
  • n° Posts: 520
  • n° Commenti: 301
Ora e Data
Archivio Posts
Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Recensione libro SQL quello che i libri non dicono (Apogeo)

Inizio le recensioni di libri di informatica del 2011 con la casa editrice che per me è stata la prima fonte di informazioni in questo campo quando intrapresi questo settore alla fine degli anni ’90, la Apogeo.

Se non fosse stato che il libro di cui parlo oggi è stato scritto per la “concorrenza” – Oracle, PostgreSQL e soprattutto MySQL – direi che rappresenterebbe il libro perfetto che qualunque sviluppatore dovrebbe avere nel proprio arsenale di testi tecnici.
Gli esempi di codice, infatti, non aiutano chi, come me, usa SQL Server nella vita quotidiana. Anche il codice di programmazione non è scritto in linguaggi a me conosciuti, ma in PHP.
Detto questo è da constatare, ahimè, l’assoluta mancanza di un testo simile per chi appartiene all’altra “sponda” (ovvero Microsoft).
In meno di 300 pagine sono raccolti 25 “anti-patterns”, un termine molto azzeccato per definire quegli errori di design, di implementazione e di sviluppo, che programmatori alle prime armi (e non solo) possono compiere quando creano applicazioni che fanno uso di basi dati (ovvero praticamente tutte).
Si passa da errori piuttosto banali, ma spesso subdoli, come il creare troppi indici, scegliere un tipo di dato non adeguato, sbagliare la scelta delle chiavi primarie, ecc. ecc., ad errori più sottili (e pericolosi) come le “sql-injection” e gli attributi multi-colonna. Il tutto suddiviso in 5 parti: le prime due dedicate al database in quanto tale (sbagli nella progettazione logica e fisica), e altre due dedicate alle query e al codice applicativo che fa uso di database.
Comunque, anche chi, come me, può riscontrare una certa difficoltà a seguire gli esempi di codice (soprattutto quello in PHP), questo libro mantiene un suo fascino e una sua utilità pressochè unica.
Per di più il tono discorsivo è molto leggero e godibile. In capitoli, nella maggioranza dei casi, non sono lunghi più di una dozzina di pagine, e questo aiuta molto nell’atto di “aprire e chiudere” un argomento senza doverne interrompere a metà la lettura per mancanza di tempo.
All’inizio di ciascuno di essi l’autore riporta sia una massima – scritta o detta da personaggi famosi, non necessariamente informatici  - sia una sua breve storia di vita vissuta in cui si è scontrato con l’anti-pattern trattato nel capitolo (assolutamente da leggere, sono molto istruttive).
Ovviamente, come un bravo medico, l’autore non descrive solo il male e la malattia, ma propone la cura (il “pattern”) da seguire, sia estirparlo, nel caso sia già conclamato, sia, soprattutto, per evitarlo.
E qua viene la parte più bella, e su cui il lettore dovrebbe fermarsi un attimo a riflettere: “Ho fatto anche io questi errori?” – “In seguito, come li ho risolti?”, e così via.
E come ogni dottore che si rispetti, l’autore può proporre anche più di una soluzione. Non esiste infatti la medicina miracolosa, ma possono esservene diverse, ognuna coi suoi pro e suo contro.
Terminando un attimo queste similitudini infermieristiche, devo sottolineare che il lettore ideale conosce già SQL nella sua sintassi base (quella Ansi) e sa di cosa si parla quando si trattano indici, stored procedure, funzioni, e così via.
E tale lettore ideale si immedesimerà in diverse situazioni simili in cui si è scontrato con tali problematiche e trabocchetti.

Non ci sono esercizi o domande di riepilogo (non avrebbero nemmeno senso, in un libro del genere), ma vi sono decine di citazioni sparse nei vari capitoli e due interessanti appendici. Una dedicata alla normalizzazione dei database, e l’altra – molto più breve – è un’utile bibliografia.

Questo libro è la traduzione di un titolo della Pragmatic Programmers, una casa editrice di cui ho già recensito qualche testo nel passato e specializzata in argomenti un po’ particolari. Ad esempio non si troverà a catalogo un testo sul C#, ma come eseguire test e le metodologie agili, ecc. E’ particolarmente predisposta per l’open source, questo spiega perché questo testo si basa su database MySQL e PHP.
Qua sotto la copertina della versione originale, pubblicata a luglio dell’anno scorso.

La traduzione mi pare molto ben fatta, per un libro che, ipotizzo, all’origine contenga molte frasi colloquiali e gergali. Ho solo notato qualche refuso qua e là, ma nulla di grave.
La Apogeo è sufficientemente gentile da mettere a disposizione un po’ di materiale gratuito in formato Pdf a questa pagina

Innanzitutto i capitoli 1 e 2 (9 pagine ciascuno) e il sommario dettagliato (8 pagine).

Purtroppo la rilegatura è quella classica “Apogeana”, durissima, e ciò non aiuta nella lettura.
L’impaginazione e la scelta dei font, invece, è azzeccata.

Qua sotto la pagina principale sul sito della Pragmatic Programmers dedicata al libro.

Il piccolo file del codice lo si scarica dal sito della casa editrice originaria, in formato sia zip che tgz (e non poteva mancare, data la vocazione open source dell’autore).

Qua sotto l’immagine (con link) dove poter reperire le errate sul sito della Pragmatic.

Come si vedrà, le errate non sono poche, ma la maggior parte sono ininfluenti sottigliezze.

 

Che dire, un testo validissimo ed unico, di cui si sente la mancanza di un analogo che sia “Microsoft centrico”.

La sua lettura è consigliata a tutti, sia programmatori alle prime armi che veterani inveterati.

 

Segnalo che il libro è venduto su Amazon Italia con il 30% di sconto. Il prezzo più basso che ho trovato.

 

 

PRO

Un libro che decida di trattare le “worst practice” invece delle “best practice” lo rende unico di per sé. La ricchezza di idee, di spunti e di avvertimenti lo rende utilissimo, e direi irrinunciabile, per sviluppatori intermedi ed avanzati. La lettura è molto scorrevole e piacevole, e il livello della traduzione è superiore alla media.

 

CONTRO

Il contro, dal punto di vista di uno sviluppatore Microsoft, è relativo al fatto che è stato scritto per applicazioni open source, e quindi gli esempi sono per MySQL e PHP.

La rilegatura Apogeo risulta eccessivamente rigida per un uso confortevole del libro.

 

 

Voto complessivo: 8/10

 

Lettore: Intermedio

 

Sommario

Nota dell’editore

1- Capitolo 1 Introduzione

Parte I Antipattern nella progettazione logica di database

13 - Capitolo 2 Jaywalking

23 - Capitolo 3 Alberi naif

41 - Capitolo 4 ID richiesto

51 - Capitolo 5 Inserimento senza chiavi

59 - Capitolo 6 Entità-Attributo-Valore

73 - Capitolo 7 Associazioni polimorfe

85 -  Capitolo 8 Attributi multicolonna

93 - Capitolo 9 Metadati e tribble

Parte II Antipattern nella progettazione fisica di database

105 - Capitolo 10 Errori di arrotondamento

113 - Capitolo 11 31 gusti

121 - Capitolo 12 File fantasma

129 - Capitolo 13 Indici dappertutto

Parte III Antipattern relativi alle query

143 - Capitolo 14 Paura dell’ignoto

153 - Capitolo 15 Gruppi ambigui

163 - Capitolo 16 Selezione casuale

171 - Capitolo 17 Il motore di ricerca dei poveri

185 - Capitolo 18 Spaghetti query

195 - Capitolo 19 Colonne implicite

Parte IV Antipattern nello sviluppo di applicazioni

205 - Capitolo 20 Password leggibili

217 - Capitolo 21 SQL injection

231 - Capitolo 22 Pseudochiavi al posto sbagliato

239 - Capitolo 23 Il diavolo si nasconde

245 - Capitolo 24 Immunità diplomatica

255 - Capitolo 25 Fagioli magici

Parte V Appendici

271 - Appendice A Regole di normalizzazione

285 - Appendice B Bibliografia

287 - Indice analitico

 

 

 

Categoria: Books
giovedì, 13 gen 2011 Ore. 11.00

Messaggi collegati


Meteo
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003