Lo sviluppo di software è un'arte e come tale viene insegnata nei corsi universitari; poi però l'ambiente di produzione reale è leggermente diverso. Benché le nozioni rimangano inalterate, nella sostanza dei fatti a uno sviluppatore viene richiesto anche altro, pur avendo come obiettivo primario costruire un prodotto efficace e potente. Ciò vale pure per sviluppatori che lavorano in proprio. Quell'
altro cui accennavo prima è la rapidità con la quale si riesce a completare la scrittura del codice. Nel mondo informatico di oggi, così frenetico e dove il tempo non presenta mai pause, la
velocità di produzione è una caratteristica spesso determinante.
Sembrerebbe una introduzione avulsa dal
testo che tratta di
Django e fondamentalmente di Python, invece quanto detto ha molta attinenza con l'argomento del libro di
Holovaty e
Kaplan-Moss. Alla base della creazione di
Django c'è infatti quanto espresso nelle primissime righe di questa recensione: arte, potenza e velocità. Le prime due caratteristiche sembrano discendere direttamente dal linguaggio di riferimento e cioè Python. Molto si è detto e molto si è scritto su questo favoloso strumento e recentemente abbiamo pure recensito
uno dei migliori libri in circolazione.
Inutile dire che ai fini di una buona comprensione del materiale proposto nel libro la
conoscenza, pur basilare, di Python è un requisito da cui il lettore non può sfuggire. In realtà gli autori amano, talvolta, sfidare a studiare
Django e proporre il
testo anche a quanti non hanno mai conosciuto Python. Una sfida che mi appare piuttosto ardua. Questo però mi serve per far notare immediatamente un'apprezzabile caratteristica dello stile di
Holovaty e
Kaplan-Moss: sempre chiaro, sempre preciso e, limitatamente al contesto di trattazione, sufficientemente esauriente. Le eventuali lacune che il lettore può presentare circa un particolare argomento vengono prontamente risolte attraverso note e precisazioni sugli esempi proposti.
Django è un framework specificamente disegnato per realizzare applicazioni web. La parola framework sta a indicare un insieme di librerie e codice, che forniscono supporto a uno sviluppatore al fine di rendere la costruzione di un applicativo un processo più semplice e più veloce. Un framework, quale
Django nel nostro caso, permette di evitare la riscrittura di funzioni o parti del software attraverso una serie di classi e procedure ben scritte e subito pronte.
Django fornisce diversi potenti strumenti per gestire facilmente un contenuto: è stato infatti inizialmente progettato per supportare la costruzione di un sito di notizie (
lawrence.com); sgue il pattern
Model-View-Controller, una soluzione architetturale che nella programmazione è una metodologia piuttosto diffusa. Per poter iniziare a usare
Django occorre completare una fase di installazione e prima configurazione che il libro illustra ottimamente nei
capitoli 1 e 2.
Permette di astrarre completamente dal database che poi verrà usato e, per un utilizzo basilare, non c'è nemmeno bisogno di manipolare del codice SQL. In linea teorica, come scritto nel
capitolo 5, non occorre nemmeno conoscere approfonditamente i rudimenti di database relazionale e del linguaggio SQL, a fronte di una buona comprensione del modo in cui
Django permette di gestire tutte le operazione sul database medesimo. Le API che fornisce il framework, descritte nell'
appendice B, sono in questo senso davvero potenti e ben scritte. Servono solo un po' di tempo per lo studio e applicazione.
Il lavoro che lo sviluppatore dovrà compierere con
Django è una preliminare pianificazione di quello che sarà il sito. Poiché stiamo trattando siti web dovremo fare i conti, non già solamente con interfacce grafiche, ma anche e soprattutto con una rigorosa mappatura di pagine (dove andremo a includere le interfacce e tutte le funzioni) e URL. Tradotto nel gergo
Django faremo i conti cioè con
views e
URLconfs, il tutto descritto nel
capitolo 3. Le prime non sono altro che tutta la logica necessaria per gestire le richieste e i secondi si occupano della mappature delle
view function con gli URL e fanno pesante uso di espressioni regolari. A questo dobbiamo aggiungere tutta la conoscenza per progettare buoni template —nel
capitolo 4 — ovvero le
viste basate su tag ed ereditarietà. Il lettore troverà nei capitoli tutti i dettagli necessari a una buona comprensione prima teorica e poi soprattutto pratica di tali argomenti, con tanto codice da studiare.
Questi stessi argomenti vengono ripresi ed enucleati con dovizia di dettagli nella seconda parte del libro. Quest'ultima contiene proprio i capitoli che puntano a dare al lettore la maggiore approfondimento così da prendere piena coscienza di tutte le potenzialità di
Django.
I creatori di
Django hanno pensato di permettere agli sviluppatori di poter operare dietro le quinte del software finale in modo semplice e diretto. Attraverso quello che viene chiamato
Django Admin Site si ha accesso a una potente soluzione integrata di amministrazione dei contenuti dell'applicazione tutta. Per contenuti, è bene precisare, si intendono tutti i modelli e i dati trattati dal framework e dall'applicazione. L'area di amministrazione tiene traccia di tutte le operazioni effettuate e permette inoltre una elementare quanto efficace gestione dell'utenza e dei permessi relativi a ciascun utente, argomenti del
capitolo 6 e dell'
appendice F. Il compito di dettagliare per intero le varie questioni relative a utenti, sessioni e sicurezza sono demandate al
capitolo 14.
In definitiva il
libro di Holovaty e Kaplan-Moss è certamente la prima fonte di informazioni per chi intende approcciarsi a
Django. Lo stile è di quelli che permettono al lettore di iniziare subito a sperimentare, senza noiose e interminabili letture, alla fine delle quali spesso ci si dimentica di nozioni e dettagli. Manca all'interno del testo un progetto completo, ma a conti fatti non mi sembra un punto a sfavore. D'altra parte il libro risulta particolarmente prezioso anche quando bisogna velocemente rivedere qualche dettaglio di implementazione. Il testo si riferisce alla versione 1.1 del framework.

La lettura consente una veloce comprensione degli aspetti del framework. Buona la strutturazione del testo e la ricchezza delle appendici. Il libro offre tanto codice ed esiste anche una versione online del libro completamente accessibile.

Manca un progetto completo, ma come accennato nella recensione, avrebbe forse appesantito la trattazione; lo si sarebbe però potuto proporlo in un supporto digitale a parte.