Ξέρετε το δίκαιο τουλάχιστον έκπληξη; Δεν είμαι σίγουρος για την καταγωγή του, αλλά το έμαθα πρώτα από το εξαιρετικό «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