2012-06-19 8 views
5

W jakich specyficzna sytuacja jest ok (lub nawet zalecane), aby zaprezentować użytkownikom końcowym z StackTrace ich interfejsu użytkownika w systemie produkcyjnym.Kiedy * NIE * pokażemy StackTraces w systemach produkcyjnych

Istnieje wiele stron internetowych i artykułów SO, w których ludzie pytają, czy powinni pokazywać StackTraces użytkownikowi końcowemu. Nic dziwnego, że odpowiedzi brzmią bardzo dobrze: "Nie!".

Na przykład:

Jednak Niedawno miałem rozmowę z innym deweloperem, gdzie spędziłem sporo czasu ustalanie, dlaczego stacktraces shou Nie przekazuje się użytkownikowi za pośrednictwem interfejsu użytkownika. Ta dyskusja kazała mi wrócić i ponownie odwiedzić jednego z moich podstawowych (absolutnych) najemców - użytkownik nigdy nie zobaczy surowego StackTrace w produkcji.

Nie mogłem znaleźć pojedynczego powodu przekonujące. Jednak jestem pewien, że istnieje poprawny przypadek użycia i chciałbym go albo zrozumieć, albo czuć się komfortowo, kontynuując trzymanie się mojego najemcy absolutnej .

Odpowiedz

6

Nie musisz - po prostu nie są pomocne dla użytkownika.

Użytkownicy otrzymują wiadomości. Programiści otrzymują ślady stosów, zarówno w dziennikach, wiadomościach e-mail, kolejce, może renderowanym kodzie HTML podczas pracy lokalnie/wewnętrznie, itp.

1

Tutaj, w moim biurze z wieloma różnymi projektami wewnętrznymi, korzystam ze śledzenia stosów, które moi współpracownicy z innych działów widzą podczas awarii moich programów. Nie są po prostu złośliwi ani nie mają wystarczającej wiedzy, aby wiedzieć, co się dzieje, w przeciwnym razie będą ze mną współpracować. Daje mi też okres, w którym można przesłuchać użytkownika, aby ustalić, co robią (gdy jest jeszcze świeży w ich umysłach). Jeśli ślad stosu został stłumiony lub wystąpiła jakaś inna piękna (ale ukryta) obsługa błędów, to mógłbym nie wiedzieć, w jaki sposób wystąpił błąd, poza śledzeniem stosu.

1

w projektach open source lub w których tryb debugowania jest włączony. Być może użytkownik korzysta z aplikacji, aby dowiedzieć się, jak działa technologia, aby stworzyć podobną aplikację, lub może planuje wnieść swój wkład w nią.

Istnieje wiele różnych typów użytkowników. Wydaje mi się, że umożliwienie im włączenia tej opcji jest zadowalające, ale nie powinno być tak łatwo, gdy przeciętny joe może przypadkowo włączyć stertę ładunków.

0

Śledzenie stosu powinno być dostępne dla użytkownika, gdy aplikacja ulegnie awarii, ponieważ ślad stosu zwykle identyfikuje błąd, który powoduje awarię, i może być dostępna praca. Obejście działa oczywiście tylko wtedy, gdy awaria jest spowodowana przez błąd, na którym działa obejście - w przeciwnym razie próba obejścia jest tylko straconym czasem.

Przyczyną awarii może być również błąd w oprogramowaniu, które użytkownik musi zaktualizować, np. sterownik karty graficznej.W takim przypadku ślad stosu zwykle zawiera nazwę sterownika karty graficznej, na przykład atiumdag.dll.

Wyobraźmy sobie:

Bez śladu stosu:

Klient: Mam pole komunikat "Program przestał działać".

Wsparcie: Wypróbuj to.

Klient: Nie, nie pomaga.

Wsparcie: Wypróbuj to.

Klient: Nie, nie pomaga.

Wsparcie: Wypróbuj to.

Klient: Nie, nie pomaga.

Wsparcie: Wypróbuj to.

Klient: Nie, nie pomaga.

W ślad stosu:

klienta: Dostaję pole komunikat „Program przestał działać”.

Wsparcie: Kliknij przycisk "szczegóły" i wyślij mi ślad stosu.

klienta: (wysyła ślad stosu)

Support: Spowodowane jest to znany błąd w aplikacji, która jest wyzwalane przez funkcja X, gdy aplikacja jest zainstalowana w innym niż domyślny ścieżki. Zostanie on naprawiony w następnej wersji, która zostanie wydana w przyszłym roku. Można jednak obejść go, wyłączając funkcję X lub ponownie instalując aplikację w domyślnej ścieżce instalacji.

Powiązane problemy