To nadal zdumiewa mnie, że w dzisiejszych czasach, produkty które mają latach użytkowania na swoim koncie, zbudowany przez zespoły specjalistów, jeszcze do tej pory - nie zapewniają pomocne komunikaty o błędach dla użytkownika. W niektórych przypadkach dodanie tylko odrobiny dodatkowych informacji może zaoszczędzić użytkownikowi godzin kłopotów.
Program, który generuje błąd, wygenerował go z określonego powodu. Ma wszystko do dyspozycji, aby w jak największym stopniu poinformować użytkownika, dlaczego coś się nie udało. A jednak wydaje się, że udzielanie informacji pomagających użytkownikowi ma niski priorytet. Myślę, że to ogromna porażka.
Jeden przykład pochodzi z SQL Server. Gdy próbujesz przywrócić używaną bazę danych, całkiem słusznie na to nie pozwala. SQL Server wie, jakie procesy i aplikacje uzyskują do niego dostęp. Dlaczego nie może zawierać informacji o procesach korzystających z bazy danych? Wiem, że nie każdy przekazuje Applicatio_Name
atrybut w ciągu połączenia, ale nawet wskazówka na temat danego komputera może być pomocna.
Kolejnym kandydatem, także SQL Server (i mySQL) jest piękny string or binary data would be truncated
komunikat o błędzie i jego odpowiedniki. Często zdarza się, że przeglądana jest prosta instrukcja SQL, a tabela pokazuje winowajcę. Nie zawsze tak jest, a jeśli silnik bazy danych wykrył błąd, dlaczego nie może nam to zaoszczędzić tego czasu i po prostu mówi nam, która to cholerna kolumna? W tym przykładzie można argumentować, że sprawdzenie wydajności może mieć negatywny wpływ na wydajność, co utrudniłoby pisarzowi. Dobrze, kupię to. Co powiesz na to, że gdy silnik bazy danych wykryje błąd, dokonuje szybkiego szybkiego porównania między wartościami, które miały być przechowywane, a długością kolumn. Następnie wyświetl to użytkownikowi.
Okropne Adaptery tabel ASP.NET są również winne. Zapytania mogą być wykonywane i można otrzymać komunikat o błędzie informujący, że gdzieś naruszane jest ograniczenie. Dziękuję za to. Czas porównać mój model danych z bazą danych, ponieważ programiści są zbyt leniwi, aby podać nawet numer wiersza lub przykładowe dane. (Dla przypomnienia, nigdy nie użyłbym tej metody dostępu do danych z wyboru , to tylko projekt, który odziedziczyłem!).
Ilekroć zgłaszam wyjątek od mojego kodu C # lub C ++, przekazuję użytkownikowi wszystko, co mam pod ręką. Podjęto decyzję o jej przekazaniu, więc im więcej informacji dam, tym lepiej. Dlaczego moja funkcja zgłosiła wyjątek? Co zostało przekazane i czego oczekiwano? Trochę dłużej zajmuje mi umieszczenie czegoś znaczącego w treści komunikatu o wyjątku. Do diabła, nie pomaga mi tylko podczas rozwoju, ponieważ wiem, że mój kod rzuca rzeczy, które są znaczące.
Można argumentować, że skomplikowane komunikaty o wyjątkach nie powinny być wyświetlane użytkownikowi. Chociaż nie zgadzam się z tym, jest to argument, który można łatwo uspokoić, mając inny poziom gadatliwości w zależności od wersji. Nawet wtedy użytkownicy ASP.NET i SQL Server nie są typowymi użytkownikami i wolą coś pełnego gadatliwości i pysznych informacji, ponieważ mogą szybciej wyśledzić swoje problemy.
Dlaczego programiści uważają, że w dzisiejszych czasach dobrze jest podawać minimalną ilość informacji w przypadku wystąpienia błędu?
To 2011 chłopaki, chodź na .