Sperimentazione
Rendering anti-flicker
Nessuno vede la pagina originale trasformarsi nel test. E nessun guasto può lasciare la pagina nascosta.
Quando una variante cambia qualcosa sopra la piega, il visitatore non deve vedere prima l’originale. Il runtime nasconde la pagina mentre le modifiche vengono applicate e la rivela immediatamente dopo, così la prima cosa disegnata è la versione in prova.
L’ingegneria interessante sta nella seconda metà. Nascondere la pagina di un cliente è la cosa più pericolosa che questo software fa, quindi la rivelazione è chiamata da quattro percorsi di codice indipendenti: dopo che le modifiche sono applicate, dal gestore di errori interno, da quello esterno, e nel runtime servito ai siti che non hanno nessun test attivo.
Quella ridondanza è deliberata ed è trattata come un invariante anziché come una duplicazione da riordinare in un solo punto. Se un percorso fallisce, un altro gira comunque. Il guasto da cui si difende è il sito di un cliente che resta bianco davanti ai suoi visitatori.
Gli errori nel codice dei test sono catturati e segnalati dopo anziché propagati, per lo stesso motivo: una variante rotta dovrebbe costarvi il test, mai la pagina.