-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 
Cal Henderson Versione stampabile.
Building Scalable Web Sites
0-596-10235-6 - O'Reilly Media - 2006 - US$ 39.99

Recensione di Cosimo Streppone Punteggio: 4.5/5

Lo strillo in copertina dice "The Flickr Way". Infatti il libro spiega tutta una serie di soluzioni tecniche mirate all'ottimizzazione delle prestazioni e alla scalabilità, che derivano dall'esperienza dell'autore Cal Henderson come capo progetto di Flickr.
Per i pochi che non lo sapessero, Flickr, acquistato di recente da Yahoo, è uno dei maggiori siti web di photo-sharing.

L'argomento principale è la scalabilità, che molto spesso viene confusa con la prestazione pura. Un sistema scalabile non è necessariamente un sistema veloce.
Per scalabilità si intende l'abilità di un'architettura o di un sistema nel mantenere lo stesso livello di prestazioni al crescere dell'utilizzo e/o della base dati e rimanere nel contempo gestibile.
L'autore sostiene (e a ragione!) che scalabilità non significa necessariamente utilizzare Java. Sfatiamo questi falsi miti! Sistemi scalabili sono stati e possono essere scritti in qualsiasi linguaggio, compilato o interpretato che sia.

11 capitoli per un totale di 330 pagine in cui la progettazione e lo sviluppo delle applicazioni web sono affrontate da tutti i possibili punti di vista. Ad esempio, la gestione dell'hardware necessario, e i modi in cui l'hardware deve supportare la nostra applicazione al crescere della mole di utenti.
Progettare una buona applicazione quindi puo' voler dire curarsi di aspetti quali i tempi di approvvigionamento dei propri fornitori di hardware, l'utilizzo di un data center, una rete elettrica e una connessione a internet di backup.

Chi ha un'esperienza di lavoro in team alle spalle, apprezzerà sicuramente il capitolo 3, interamente dedicato agli ambienti di sviluppo, in cui vengono enunciate e spiegate in dettaglio le tre leggi fondamentali:

  1. "Use source control"
  2. "Have a one-step build"
  3. "Track your bugs"
Chiaramente, si puo' anche non essere d'accordo, ma per un'applicazione complessa è d'obbligo adottare almeno due di queste "regole".
Sul sistema di source control, tutti siamo d'accordo. Personalmente lo trovo irrinunciabile ormai.
Un processo di build tipo one-step è uno strumento che possa essere utilizzato dagli sviluppatori per aggiornare l'applicazione in produzione partendo dai sorgenti rilasciati, che funzioni automaticamente, senza intervento manuale.
Gestire i difetti dell'applicazione è chiaramente necessario, anche quando l'applicazione è semplice. Il bug tracking di CPAN in questo senso è un ottimo esempio.

L'aspetto secondo me più interessante di questo libro è che fornisce delle linee guida valide sia che l'applicazione da gestire abbia 10 utenti, sia che ne abbia 10 mila! In questo modo si puo' imparare a prevedere efficacemente la crescita della propria applicazione di diversi ordini di grandezza. Il che non è detto che avvenga necessariamente... :-)

Altri capitoli riguardano internazionalizzazione, localizzazione e unicode, integrità e sicurezza dei dati, con particolare attenzione alle problematiche di Cross Site Scripting e SQL Injection, invio e ricezione automatici di email e web services.
In ogni capitolo, l'argomento viene spiegato in dettaglio, con parole semplici e pochi tecnicismi, e dove rilevante, con degli esempi pratici e riferimenti a moduli o script in PHP e Perl e qualche volta anche Ruby, Python o altri linguaggi.

Parte rilevante del libro sono i due capitoli sull'analisi delle prestazioni di un'applicazione web, tutt'altro che banale, e sulle statistiche e il monitoraggio. Per capire dove un'applicazione "perde" tempo è necessario il profiling del proprio codice e, se presente, del motore database che si utilizza.
L'autore spiega come individuare i potenziali colli di bottiglia, sia hardware che software e fornisce utili suggerimenti su come poter intervenire.

Conclusioni

Consiglio la lettura a sviluppatori web o responsabili di sviluppo alla ricerca di una visione più ampia del proprio lavoro. Potranno fare tesoro della preziosa esperienza fatta da Henderson durante lo sviluppo (e la crescita) di Flickr.

Pro

  • Un condensato dell'esperienza pratica del gigante Flickr, che puo' essere utile allo scriptino PHP quanto alla complessa web application.
  • Copre la gestione di un'applicazione a 360°, progetto, sviluppo, deployment, forniture hardware, data center... Tutto.
  • Linguaggio semplice e chiaro. Nessuna volontà di tecnicismo.

Contro

  • Nessuno!

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google