Trace: la potenza è nulla senza controllo

by Luca Baldini on 6 settembre 2011

I bug software si dividono in due categorie: quelli che scoprite voi durante la fase di test (pochi) e quelli che accadono ai vostri utenti (molti di più). I primi sono facili da risolvere: si riproduce il problema, si analizza il codice e si implementa la correzione. I secondi sono più complicati: la maggior parte degli errori non vengono segnalati, e, anche quando questo avviene, le informazioni che si ottengono sono minime. Ecco una classica mail di segnalazione:

“ho avuto un errore premendo il bottone Salva, non mi ricordo cosa stavo facendo… poi nella videata di errore c’era scritto qualcosa che non ho capito.”

Queste informazioni sono raramente sufficienti per identificare il problema che, quindi, rimane insoluto e continua indisturbato  a causare fastidi e danni.

Per risolvere questo tipo di errori occorre un sistema di raccolta dati integrato nell’applicazione che avvisi i programmatori quando avviene un errore, permetta di sapere esattamente ciò che l’utente stava facendo e, perché no, mostri le righe di codice che sono state eseguite sul server e che hanno portato alla manifestazione all’errore.

Questa è esattamente la descrizione del nuovo modulo di Trace disponibile nella versione 10.5 che uscirà in versione alfa proprio questo fine settimana.

Cosa cambia quando utilizziamo il Trace? Immaginiamo questa scena: un vostro cliente sta utilizzando la vostra applicazione web, clicca su un bottone ed ottiene un errore. Dopo qualche istante il Trace contatta l’applicazione, scopre ciò che è avvenuto e decide di  inviare una e-mail ai programmatori che devono risolvere il problema. Il programmatore riceve la e-mail, apre il Trace, guarda i dati raccolti per quell’utente e riesce ad identificare esattamente il punto in cui c’è il problema. Vede che il cliente sta ancora utilizzando l’applicazione pertanto gli invia un messaggio suggerendogli come aggirarlo. Poi implementa la correzione e pianifica un  aggiornamento dell’applicazione per le ore 23:00 del giorno stesso.

Pensate che tutto questo sia impossibile o troppo complicato? Guardate il filmato e provate anche voi. Il modulo di Trace è attivo gratuitamente per tutte le licenze fino a fine 2011.

Buon Trace a tutti!

 

{ 7 comments… read them below or add one }

1 r.bianco 6 settembre 2011 alle 17:49

Dopo aver visto il video ho pensato due cose:
1) ma che figata!
2) avendo tutto questo meccanismo attivo (compreso debug) quante risorse in più richiederà l’applicazione, sia sul server che sul client?

e adesso che scrivo me ne viene in mente un’altra:

3) e a sicurezza come stiamo? avere il debug attivo dal cliente mi preoccupa un po’

2 Alberto Senni 6 settembre 2011 alle 18:32

MOOLTO BELLO … ci potrebbe essere pericolo di SPAM per qualche programmatore….

3 Teopost 6 settembre 2011 alle 19:33

Molto bello. Non mi é chiaro il discorso licenza.
Cosa vuol dire che si può usare fino a fine 2011.
Per usarlo in produzione devo acquistare una licenza a parte ?

4 Giovanni Foschini 7 settembre 2011 alle 11:17

@Teopost: il modulo di Tracing è un modulo aggiuntivo esistente già da diversi anni e che in occasione della release 10.5 è stato rivisto e attualizzato come del resto era successo al modulo RTC in occasione della versione 10.1. Ne consegue che la politica commerciale sia analoga a quella dell’RTC.
In realtà tutte le funzioni che hai visto nel video sono integrate e disponibili dentro IDManager gratuitamente, ad eccezione dell’attivazione del debug in produzione che è parte del modulo aggiuntivo di Tracing, che potrai comunque provare gratuitamente per tutto il 2011.

5 Giuseppe Cassanelli 7 settembre 2011 alle 18:43

GRANDE LIBIDINE !
Mi associo ai commenti precedenti e anch’io mi pongo le domande circa le risorse necessarie e la sicurezza, o quanto meno l’opportunità estetico/fromale, di lasciare il debug attivo e accessibile.
Potrebbe essere un’idea che in questa situazione il pulsantino de debug fosse oscurabile in automatico o come opzione ?

6 Giuseppe Cassanelli 7 settembre 2011 alle 18:46

Correggo… che cos’é quell’icona in alto a dx di fianco al pulsante di chiusura della sessione utente ??

7 Luca Baldini 12 settembre 2011 alle 09:21

@riccardo ti rispondo per punti :-)
1) Grazie!!!!!
2) Le applicazioni web per le quali non viene attivato il trace funzionano esattamente come prima, nessun nuovo bit viene utilizzato. Quando viene attivato l’applicazione raccoglie i dati in memoria fino a quando IDManager non glieli chiede (puoi programmare tu ogni quanto IDManager deve contattare l’applicazione). Appena l’applicazione ha consegnato i dati ad IDManager li elimina subito dalla memoria. Lo stesso vale per i dati debug. L’applicazione conserva solo una parte dei dati di debug e, appena IDManager la contatta, glieli invia e li elimina dalla memoria. IDManager conserva tutto su disco quindi, anche lui, occupa poco. Troverai maggiori dettagli nel capitolo del libro che aggiorneremo a breve.
3) La comunicazione tra IDManager e applicazione è compressa e criptata. La password è nota solo all’applicazione e ad IDManager. Viene cambiata ad ogni pubblicazione. Dimenticavo, puoi anche attivare il debug solo per le sessioni che ti interessano (magari c’è un utente che vede problemi che altri non vedono… attivi il debug per lui così l’applicazione pesa di meno).

@giuseppe grazie mille anche a te! Il pulsantino è oscurato ed il telefonino che vedi nell’immagine è il vecchio bottone che utilizzava il vecchio modulo di Trace. Verrà eliminato entro la versione FINAL (il filmato l’ho girato con una versione preliminare di In.de :-) ).

Leave a Comment

Previous post:

Next post: