Fehlercodes und das Gesetz des geringsten Erstaunens

kennen Sie das Gesetz des erstaunlichen Erstaunens? Ich bin nicht sicher, ob ich seinen Ursprung nicht, aber ich habe es zuerst aus dem außergewöhnlichen “Tao der Programmierung” gelernt. Einfach gesagt, es ist das Prinzip, dass die Software immer auf die Benutzer auf eine Weise reagieren muss, die sie am wenigsten erstaunt. Mit anderen Worten, das Drucken eines Papiers sollte es nicht von Ihrem Dateisystem löschen.

Was muss ein Programm nach dem Recht des erstaunlichen Erstaunens tun, wenn ein Programm einen harten Fehler trifft? Sie könnten sagen, dass es dem Benutzer wissen muss. Leider putzen viele Systeme in diesen Tagen nur unter dem Teppich.

Ich denke, es begann mit Fenstern. Oder vielleicht der Mac. Das Denken geht davon aus, dass Endbenutzer zu dumm sind oder zu schrecklich von Fehlercodes oder ausführlichen Nachrichten, sodass wir sie einfach verlassen. Fall in Punkt: Das iPhone meiner Frau würde nicht Bilder veröffentlichen. Ich bin kein Experte, wenn man bedenkt, dass ich ein Android-Gerät trage, aber ich stimmte zu, es zu sehen. Egal, was ich versuchte, ich habe die gleiche nutzlose Nachricht erhalten: “Ich kann jetzt nicht ideal veröffentlichen. Bitte versuchen Sie es später erneut. ” Dies ist nicht nur nicht sehr informativ, sondern es impliziert auch, dass das Problem in etwas ist, das sich später wie das Netzwerk reparieren könnte.

Der echte Täter? Die iCloud-Nutzungsbedingungen hatten sich geändert und sie hatte den neuen Vertrag nicht akzeptiert. Ich habe das Gefühl, es hätte es vielleicht aufgetaucht, um das irgendwann zu tun, aber aus irgendeinem Grund hat sie es vermisst. bis Sie in die Einstellungen gegraben und das Kästchen überprüft, um diesen Bedingungen zu stimmen, “später” wurde nie passieren.

Aber es ist nicht nur iPhones. Windows ist voll von Dingen und Ihnen, und Sie hoffen nur, dass der Event-Kunde mit vielen Einzelheiten ein Protokoll einloggen wird. Ich sehe jetzt auch viel mehr davon in Linux, obwohl es irgendwo eine Protokolldatei gibt, wenn Sie wissen, wie Sie es finden können. Während ich es bekomme, dass Programme mit Fehlern das Risiko des Erstaunens des Benutzers betreiben, ist es sogar viel Erstaunlicher, wenn es keine Erklärung gibt, was falsch ist. Stellen Sie sich vor, wenn Ihre Bank Ihnen eine Notiz geschickt hat: Es gibt ein Problem mit Ihrem Konto. Sie antworten also: “Habe ich übermäßig gesehen?” Sie antworten, “Nein.” was jetzt? Das ist heute der Zustand von vielen Softwarefehlern.

Es gibt wirklich keine Entschuldigung auf Desktop-Systemen oder Websites. Sie möchten jedoch winzige eingebettete Systeme vergeben. Noch nicht! Ich habe kürzlich die 3D-Drucker-Firmware-Marlin mit einem Anet-A8-Board mit einem 8-Bit-Prozessor mit wenig Speicher -, der für viele Jahre auf wiederholter Firmware gewesen war. Das erste Mal, als ich versuchte, eine Autolevel-Sonde zu erledigen, bekam ich die Meldung: Das Guthaben ist fehlgeschlagen. Das ist es.

Ich erwecke Ihnen, dass Sie das AutoLevel-Debugging einschalten können, um viel mehr Informationen zu erhalten, aber ich bin bereits bei 98% Flash-Auslastung, sodass dies vorübergehend eine Reihe von Merkmalen entfernt und den Code neu aufbauen muss. Aber warum nicht wie wir in den alten Zeiten tun würden:

Unit Global_Error = 0;
void do_something (void) {
global_error = 1;
Wenn (process1 () == fail) zurückkehren;
global_error ++;
Wenn (process2 () == fail) zurückkehren;
. . .

global_error = 0;
Rückkehr;
}
Das braucht nicht viel Platz. Jetzt können Sie etwas wie Sonden melden (8), und ich kann zumindest zum Code gehen und herausfinden, was der 8. Schritt fehlgeschlagen war. Ich bin sicher, dass jemand sogar eine Liste von Codes poste und was sie in einem solchen Fall angegeben haben.

Zu viel Overhead? Sagen Sie mir den Programmzähler, an dem der Fehler stattgefunden hat. Das war früher eine ziemlich häufige Praxis. Es erfordert, dass Sie eine Speichermap-Datei haben und wissen, wie Sie es lesen können, aber es ist immer noch besser als nichts.

Wir verbringen viel Zeit damit, darüber nachzudenken, wie Projekte und Software funktionieren müssen. Aber wir müssen auch Zeit damit verbringen, darüber nachzudenken, was passiert, wenn sie nicht funktionieren. Es ist in Ordnung, dass wir das Debugging von In-Circuit machen oder einen logischen Analysator anschließen können, aber das hilft unseren Benutzern nicht. Auch wenn es nur für Sie ist, warum nicht viel leichter für sich selbst schaffen?

Wie wir vorher gesagt haben, ist es nicht zu viel Informationen. ” Neben dem Schutz von Systemfehlern können Sie den Benutzern auch helfen, sich nicht zu staunen.

Bildkredit: [ELISA VENTUR] mit UNSPLASH.com

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post