Κωδικοί σφάλματος και το δίκαιο του τουλάχιστον έκπληξη

Ξέρετε το δίκαιο τουλάχιστον έκπληξη; Δεν είμαι σίγουρος για την καταγωγή του, αλλά το έμαθα πρώτα από το εξαιρετικό «Tao του προγραμματισμού.» με απλά λόγια, είναι η αρχή ότι το λογισμικό πρέπει πάντα να ανταποκριθεί στους χρήστες με τρόπο που τουλάχιστον εκπλήσσει τους. Με άλλα λόγια, την εκτύπωση ενός εγγράφου δεν πρέπει να το διαγράψετε από το σύστημα αρχείων σας.

Μετά το δίκαιο τουλάχιστον έκπληξη, τι πρέπει ένα πρόγραμμα να κάνει όταν χτυπά ένα σοβαρό σφάλμα; Θα μπορούσαμε να πούμε ότι πρέπει να αφήσουμε την τεχνογνωσία του χρήστη. Δυστυχώς, πολλά συστήματα απλά να βουρτσίσετε κάτω από το χαλί αυτές τις μέρες.

Νομίζω ότι ξεκίνησε με τα Windows. Ή ίσως το Mac. Η σκέψη πηγαίνει ότι οι τελικοί χρήστες είναι πολύ ανόητο ή πολύ τρομοκρατημένοι των κωδικών σφάλματος ή σε βάθος μηνύματα γι ‘αυτό ακριβώς τους αφήνει έξω. παράδειγμα: iphone γυναίκα μου δεν θα δημοσιεύσει τις φωτογραφίες. Δεν είμαι ειδικός, θεωρώντας ότι κουβαλάω μια συσκευή Android, αλλά συμφώνησε να το δει κανείς. Δεν έχει σημασία τι δοκίμασα, πήρα το ίδιο άχρηστο μήνυμα: «Δεν είναι δυνατή η δημοσίευση φωτογραφιών ιδανική τώρα. Παρακαλώ δοκιμάστε ξανά αργότερα.” Δεν είναι μόνο αυτό δεν είναι πολύ κατατοπιστική, αλλά συνεπάγεται επίσης το πρόβλημα είναι κάτι που μπορεί να καθορίζει ο ίδιος αργότερα, όπως το δίκτυο.

Ο πραγματικός ένοχος; Οι όροι iCloud της υπηρεσίας είχε αλλάξει και δεν είχε αποδεχθεί την νέα σύμβαση. Έχω την αίσθηση ότι μπορεί να έχουν σκάσει επάνω ζητώντας της να το κάνουμε αυτό σε κάποιο σημείο, αλλά για οποιονδήποτε λόγο που το έχασε. μέχρι να σκάψει στις ρυθμίσεις και να ελέγξει το κουτί για να συμφωνήσουν στους όρους αυτούς, «αργότερα» ποτέ δεν πρόκειται να συμβεί.

Αλλά δεν είναι μόνο τα iPhones. Windows είναι γεμάτο από τέτοια πράγματα και το μόνο που ελπίζουμε ότι θα υπάρξει ένα ημερολόγιο στον πελάτη εκδήλωση με πολύ περισσότερες λεπτομέρειες. Βλέπω, επίσης, πολύ περισσότερο από αυτό τώρα και στο Linux, αν και υπάρχει συνήθως κάπου αρχείο καταγραφής, αν ξέρεις πώς να το βρείτε. Ενώ το πάρει ότι τα προγράμματα έχουν λάθη διατρέχουν τον κίνδυνο εκπληκτικό το χρήστη, είναι ακόμα πολύ πιο εκπληκτικό, αν δεν υπάρχει εξήγηση για το τι είναι λάθος. φανταστείτε αν η τράπεζά σας σας έστειλε ένα σημείωμα: υπάρχει κάποιο πρόβλημα με το λογαριασμό σας. Έτσι μπορείτε να απαντήσετε: «Μήπως έχω υπερανάληψης;» Θα απαντήσω, «Όχι» και τώρα τι? Αυτή είναι η κατάσταση της πολλά σφάλματα λογισμικού σήμερα.

Δεν υπάρχει πραγματικά καμία δικαιολογία για συστήματα desktop ή ιστοσελίδες. Ωστόσο, ίσως να θέλετε να συγχωρήσει τα μικροσκοπικά ενσωματωμένα συστήματα. Μην! Έχω μεταφέρει πρόσφατα το firmware του εκτυπωτή 3D Marlin σε μια πλακέτα ANET Α8 – έναν επεξεργαστή 8-bit με μικρή μνήμη – που ήταν σε Repetier firmware για πολλά χρόνια. Η πρώτη φορά που προσπάθησα να κάνω ένα ανιχνευτή autolevel πήρα το μήνυμα: απέτυχε σχολαστικά. Αυτό είναι.

Θα σας χορηγήσει, ότι μπορείτε να ενεργοποιήσετε autolevel εντοπισμού σφαλμάτων για να πάρετε μια πολύ περισσότερες πληροφορίες, αλλά είμαι ήδη στο 98% τη χρήση φλας, έτσι ώστε να απαιτούν την αφαίρεση προσωρινά ένα σωρό χαρακτηριστικά και την ανοικοδόμηση του κώδικα. αλλά γιατί να μην το κάνουμε, όπως θα κάναμε στις παλιές μέρες:

μονάδα global_error = 0?
void do_something (void) {
global_error = 1?
εάν (διαδικασίας1 () == FAIL) επιστροφή?
global_error ++?
εάν (διαδικασία 2 () == FAIL) επιστροφή?
. . .

global_error = 0?
ΕΠΙΣΤΡΟΦΗ;
}
Αυτό δεν καταλαμβάνει πολύ χώρο. τώρα μπορείτε να αναφέρετε κάτι σαν σχολαστικά απέτυχαν (8) και τουλάχιστον να πάει στον κώδικα και να καταλάβω ποιο είναι το 8ο βήμα ήταν ότι απέτυχε. Είμαι σίγουρος ότι κάποιος θα καταχωρήσετε ακόμη και μια λίστα με τους κωδικούς και ό, τι αναφέρεται σε μια υπόθεση όπως αυτή.

Πάρα πολύ γενικά; πες μου το μετρητή προγράμματος, όπου συνέβη το σφάλμα. Αυτό χρησιμοποιείται για να είναι μια αρκετά κοινή πρακτική. Σύμφωνοι, απαιτεί από εσάς να έχετε ένα αρχείο χάρτη μνήμης και ξέρουν πώς να το διαβάσει, αλλά ακόμα καλύτερη είναι από το τίποτα.

Ξοδεύουμε πολύ χρόνο να σκεφτόμαστε πώς τα έργα και πρέπει να το λογισμικό εργασίας. αλλά θα πρέπει να περνούν το χρόνο σκέψης, επίσης, για το τι συμβαίνει όταν δεν λειτουργούν. Είναι μια χαρά που μπορούμε να κάνουμε τον εντοπισμό σφαλμάτων σε κύκλωμα ή συνδέω μια λογική αναλυτή, αλλά αυτό δεν θα βοηθήσει τους χρήστες μας. ακόμα κι αν είναι μόνο για σας, γιατί να μην το λίγο πολύ πιο εύκολο για τον εαυτό σας να κάνει;

Όπως έχουμε ξαναπεί, «Δεν υπάρχει τέτοιο πράγμα όπως πάρα πολλές πληροφορίες.» Εκτός από την προστασία από σφάλματα συστήματος, μπορείτε επίσης να βοηθήσει τους χρήστες να μην να καταπλήξει τους εαυτούς τους.

Image Credit: [Elisa Ventur] μέσω της Unsplash.com

Leave a Reply

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

Related Post

3D Εκτύπωση RC Αεροπλάνα που πετούν: Χρονικό του μηχανικού3D Εκτύπωση RC Αεροπλάνα που πετούν: Χρονικό του μηχανικού

Στο παρελθόν, δημιουργώντας ακριβείς αντίγραφα μοντέλων και αντικειμένων φαντασίας ήταν μια εργασία που απομένει στα πιο ταλαντούχα cosplayers. Αυτά τα στηρίγματα δεν χρειάζεται να είναι λειτουργικά, όμως. [Steve Johnstone] παίρνει

Η αυτόματη ζύμη μπύρας ήταν hacked μαζί από ένα κομμάτι από όλαΗ αυτόματη ζύμη μπύρας ήταν hacked μαζί από ένα κομμάτι από όλα

αυτό το πράγμα είναι πραγματικά αξιοσημείωτο. Είναι ένα σύστημα μπύρας που γεμίζει αυτόματα και διανέμει στους επισκέπτες του κόμματός σας. Η μέθοδος είναι κάτι μιας βιομηχανικής επανάστασης για τα κόμματα.

Το Facedancer Board επιτρέπει τα προγράμματα Python σας να προσποιούνται ότι είναι Hardware USBΤο Facedancer Board επιτρέπει τα προγράμματα Python σας να προσποιούνται ότι είναι Hardware USB

αυτό είναι το πρωτότυπο πίνακα για το νέο εργαλείο ανάπτυξης USB USB που ονομάζεται FaceDancer. Έλαβε στο σχεδιασμό με την ασφάλεια USB που εκμεταλλεύονται κατά νου, αλλά νομίζουμε ότι έχει