Stiamo vivendo un'epoca di grande rischio sul Web e forse la maggior parte di noi sviluppatori non ha ancora compreso la portata di questi cambiamenti. L'introduzione dei social network e il ruolo preponderante di alcune società sul Web ha fatto si che molti siti (la maggior parte) dipendano interamente dal funzionamento di altri siti. Twitter, Facebook, Google sono un esempio di questi enormi hub da cui vengono distribuite API, interfacce, plugin e widget. Ma cosa succede quando uno di questi hub è down? Semplice: il Web va giù. Vediamo come porre rimedio a questa situazione.
Minimizzare le dipendenze
La prima cosa da fare per sopravvivere ad un ipotetico down è minimizzare le dipendenze verso i grandi hub, ossia:
- Usare CSS locali
- Usare codice JavaScript e librerie JavaScript locali
- Usare web fonts locali
- Minimizzare l'uso di widget social cercando di utilizzare il proprio codice in luogo dei widget di terze parti
- Utilizzare un proprio engine di ricerca
- Minimizzare la dipendenza da servizi di terze parti per servizi ausiliari al sito
- Usare solo le caratteristiche richieste dal sito, senza esagerare
Prepararsi al peggio
Nella scrittura del codice, occorre prevedere la situazione in cui una risorsa remota non è disponibile, fornendo all'utente o contenuto di ripiego o un messaggio informativo.
Per esempio, se vogliamo visualizzare dei dati da Twitter, usiamo la precauzione di mettere di volta in volta i dati in cache per poterli usare nei momenti di necessità.
Perchè i siti vanno giù
Quando un sito ha molte dipendenze esterne e queste dipendenze non sono disponibili, i browser, per farla breve, si bloccano. Cercano di effettuare il rendering delle parti disponibili e attendono che le dipendenze esterne si carichino.
L'effetto spiacevole che l'utente ha è quello della pagina che si carica all'infinito o della pagina renderizzata solo a metà.