2012-06-19 9 views
5

Sotto quale specifica situazione è ok (o anche consigliato) per presentare agli utenti finali con uno StackTrace alla loro interfaccia utente su un sistema di produzione.Quando * a * mostriamo stacktraces sui sistemi di produzione

Ci sono un gran numero di siti Web e articoli SO in cui la gente chiede se devono mostrare StackTraces a un utente finale. Non sorprende che le risposte siano un clamoroso "No!".

Ad esempio:

Tuttavia, di recente ho avuto una conversazione con un altro sviluppatore dove ho trascorso un bel po 'di tempo posturing perché lo stacktraces shou Non posso essere passato all'utente tramite l'interfaccia utente. Questa discussione mi ha fatto tornare indietro e rivisitare uno dei miei inquilini fondamentali (assoluti) - l'utente non deve mai vedere uno StackTrace grezzo in produzione.

Non sono riuscito a trovare un solo motivo convincente. Tuttavia, sono sicuro che ci sia un caso d'uso valido, e mi piacerebbe o capirlo, o sentirmi a mio agio continuando a tenere il mio assoluto titolare.

risposta

6

Non è così: semplicemente non sono utili a un utente.

Gli utenti ricevono i messaggi. Gli sviluppatori di ottenere tracce di stack, sia nei log, una e-mail, una coda, forse il rendering HTML durante l'esecuzione a livello locale/internamente, ecc

1

Da queste parti, nel mio ufficio con molti diversi progetti interni, traggo vantaggio dal vedere tracce di stack che i miei colleghi di altri reparti vedono quando i miei programmi si bloccano. Non sono maliziosi o ben informati per sapere cosa sta succedendo, altrimenti lavorerebbero con me. Mi dà anche un periodo di finestra per interrogare l'utente per determinare forse cosa stavano facendo (mentre è ancora fresco nelle loro menti). Se la traccia dello stack era stata soppressa o era stata applicata qualche altra bella (ma occulta) gestione degli errori, allora potrei non sapere come si è verificato un errore se non attraverso una traccia dello stack.

1

nei progetti open source o dove si ha la modalità di debug attivata. Forse l'utente sta utilizzando l'applicazione per scoprire come funziona la tecnologia per creare un'app simile o forse pensa di contribuire da sola.

Esistono molti tipi diversi di utenti. Penso che consentire loro di attivare questa opzione è semplice, ma non dovrebbe essere così facile dove il tuo joe medio potrebbe accidentalmente accendere stacktraces.

0

La traccia dello stack deve essere disponibile all'utente quando l'applicazione si arresta in modo anomalo, poiché una traccia dello stack identifica solitamente il bug che causa l'arresto anomalo e potrebbe esserci un lavoro disponibile. Il work-around funziona ovviamente solo se il crash è causato dal bug a cui è destinato il work-around - altrimenti il ​​tentativo di work-around è solo tempo sprecato.

Un arresto anomalo potrebbe anche essere causato da un bug in qualcosa che l'utente deve aggiornare, ad es. driver grafico.In questo caso, la traccia dello stack contiene in genere il nome del driver grafico, ad esempio atiumdag.dll.

Immaginiamo:

Nessuna traccia dello stack:

clienti: ricevo una finestra di messaggio che dice "il programma ha smesso di funzionare".

Supporto: prova questo.

Cliente: No, non aiuta.

Supporto: prova questo.

Cliente: No, non aiuta.

Supporto: prova questo.

Cliente: No, non aiuta.

Supporto: prova questo.

Cliente: No, non aiuta.

Con stack trace:

clienti: ottengo una finestra di messaggio che dice "il programma ha smesso di funzionare".

Supporto: fare clic sul pulsante "dettagli" e inviare la traccia dello stack.

clienti: (invia l'analisi dello stack)

Supporto: Questo è causato da un bug noto nella domanda, che viene attivato da funzione X quando l'applicazione viene installata in un percorso non predefinito. Sarà risolto nella prossima versione, che verrà rilasciata il prossimo anno. Tuttavia, è possibile aggirarlo disabilitando la funzione X o reinstallando l'applicazione nel percorso di installazione predefinito.

Problemi correlati