Kender du loven i det mindste forbavselse? Jeg er ikke sikker på dets oprindelse, men jeg først lært det fra den exceptionelle ”Tao Programmering.” Kort sagt, det er det princip, at softwaren altid må reagere på brugerne på en måde, mindst forbavser dem. Med andre ord, udskrivning af et papir bør ikke slette det fra dit filsystem.
Efter loven i det mindste forbavselse, hvad skal et program gøre, når det rammer en hård fejl? Man kan sige, at det skal lade brugeren vide. Desværre, masser af systemer børste det lige under gulvtæppet i disse dage.
Jeg tror, det startede med Windows. Eller måske Mac. Tankegangen går, at slutbrugere er for dumt eller for bange for fejlkoder eller dybdegående budskaber, så vi bare forlader dem ud. eksempel: Min kones iphone ville ikke udgive billeder. Jeg er ingen ekspert i betragtning af at jeg bærer en Android-enhed, men jeg aftalt at se på det. Uanset hvad jeg prøvede, jeg fik den samme ubrugelige besked: ”Kan ikke publicere fotos ideal nu. Prøv igen senere.” Ikke alene er dette ikke meget oplysende, men det indebærer også at problemet er i noget, der kan reparere sig selv senere ligesom netværket.
Den virkelige skyldige? ICloud hensyn til service havde ændret sig, og hun ikke havde accepteret den nye kontrakt. Jeg har en fornemmelse af det kunne have affyret op beder hende om at gøre det på et tidspunkt, men uanset af hvilken grund hun savnede det. indtil du gravet ind indstillingerne og markeret afkrydsningsfeltet for at acceptere disse vilkår, ”senere” aldrig kommer til at ske.
Men det er ikke kun iPhones. Vinduer er fuld af ting som det, og du kun håbe at der vil være en log i tilfælde kunde med en masse flere detaljer. Jeg ser også meget mere af det nu på Linux, selv om der er normalt en logfil eller andet sted, hvis du ved, hvordan at finde den. Mens jeg får det at udsendelserne har fejl risikerer forbavsende brugeren, er det endnu meget mere overraskende, hvis der ikke er nogen forklaring på, hvad der er galt. forestille sig, hvis din bank har sendt dig en note: der er et problem med din konto. Så du reagere: ”Har jeg overdraw?” De svare: ”Nej.” hvad nu? Det er den tilstand af masser af softwarefejl i dag.
Der er virkelig ingen undskyldning på desktop-systemer eller hjemmesider. Dog kan du tilgive små indlejrede systemer. Må ikke! Jeg har for nylig porteret 3D-printer firmware Marlin til en ANET A8 bord – en 8-bit processor med lidt hukommelse – der havde været på Repetier firmware for masser af år. Første gang jeg forsøgte at gøre en Autolevel sonde jeg fik den besked: mislykkedes sondering. Det er det.
Jeg vil give dig, at du kan tænde Autolevel debugging at få meget mere information, men jeg er allerede på 98% flash udnyttelse, så det ville kræve midlertidigt at fjerne en masse funktioner og genopbygge koden. men hvorfor ikke gøre som vi ville gøre i gamle dage:
enhed global_error = 0;
void do_something (void) {
global_error = 1;
hvis (process1 () == FAIL) tilbagevenden;
global_error ++;
hvis (fremgangsmåde 2 () == FAIL) tilbagevenden;
. . .
global_error = 0;
Vend tilbage;
}
Det tager ikke meget plads. nu kan du rapportere noget mislykkedes sondering (8), og jeg kan i det mindste gå til koden og finde ud af, hvad det 8. trin blev der mislykkedes. Jeg er sikker på, at nogen ville endda sende en liste over koder, og hvad de er angivet i et tilfælde som dette.
Alt for meget overhead? fortælle mig programmet tæller hvor skete fejlen. Det plejede at være en temmelig almindelig praksis. Indrømmet, det kræver at du har en hukommelse kort fil og vide, hvordan man læser det, men det er stadig bedre end ingenting.
Vi bruger en masse tid på at tænke over, hvordan projekter og software skal arbejde. men vi er nødt til at bruge tid på at tænke, også om, hvad der sker, når de ikke arbejder. Det er fint, at vi kan gøre i kredsløb debugging eller tilslutte en logik analysator, men det vil ikke hjælpe vores brugere. selv om det er til dig, hvorfor så ikke gøre det lidt nemmere for dig selv?
Som vi har sagt før, ”Der er ikke sådan noget som for meget information.” Ud over at beskytte mod systemfejl, kan du også hjælpe brugerne til ikke at forbavse selv.
Billede Credit: [Elisa Ventur] ved hjælp af Unsplash.com