קודי שגיאה וחוק לפחות בתדהמה

Feb 24, 2022 Uncategorized

האם אתה מכיר את החוק של תדהמה לפחות? אני לא בטוח המוצא שלו, אבל קודם למדתי אותו מן החריגים “טאו של תכנות.” במילים פשוטות, זה העיקרון כי התוכנה תמיד חייב להגיב על משתמשים באופן לפחות astonishes אותם. במילים אחרות, הדפסת נייר לא צריך למחוק אותו ממערכת הקבצים שלך.

בעקבות החוק של לפחות בתדהמה, מה חייבת תכנית לעשות כשזה פוגע טעות קשה? אפשר לומר כי הוא חייב הודע זאת המשתמשים. למרבה הצער, הרבה מערכות רק לצחצח את זה מתחת לשטיח בימים אלה.

אני חושב שזה התחיל עם Windows. או אולי Mac. החשיבה היא שאם כי משתמשי הקצה הם טיפשים מדי או יותר מדי מפחדים קודי שגיאה או מעמיק הודעות אז אנחנו פשוט עוזבים אותם החוצה. דוגמה מובהקת לכך: iPhone של אשתי לא לפרסם תמונות. אני לא מומחה בהתחשב שאני לשאת מכשיר אנדרואיד, אבל הסכמתי להסתכל על זה. לא משנה מה ניסיתי, קיבלתי את אותה הודעה תועלת: “לא ניתן לפרסם את התמונות אידיאלי עכשיו. בבקשה נסה שוב מאוחר יותר.” לא רק הוא לא זה מאוד אינפורמטיבי, אבל זה גם מרמז הבעיה היא במשהו שעשוי לתקן את עצמו מאוחר יותר כמו הרשת.

האשם האמיתי? תנאי iCloud של השירות השתנה והיא לא קיבלה את החוזה החדש. יש לי הרגשה שאולי צץ מבקש ממנה לעשות את זה בשלב כלשהו, אבל מסיבה כלשהי היא החמיצה אותו. עד שאתה חפור ההגדרות ובדקת את התיבה כדי להסכים לתנאים אלה, “מאוחר יותר” לעולם לא יקרה.

אבל זה לא iPhones פשוט. Windows מלא דברים כאלה ואתה רק לקוות שלא יהיה היכנס ללקוח האירוע עם פרטים יותר הרבה. אני גם רואה הרבה יותר מזה עכשיו על לינוקס, אם כי יש בדרך כלל איפשהו קובץ היומן אם אתה יודע איך למצוא אותו. בעוד אני מקבל את זה כי תוכניות שיש שגיאות מסתכנות והדהים את המשתמש, זה אפילו הרבה יותר מדהים אם אין הסבר של מה לא בסדר. לדמיין אם הבנק שלך שלח לך פתק: יש בעיה עם החשבון שלך. אז אתם מגיבים: “האם אני איחור?” הם עונים, “מס” עכשיו מה? זהו מצב של המון שגיאות תוכנה היום.

אין באמת שום תירוץ על מערכות שולחן עבודה או אתרי אינטרנט. עם זאת, אולי כדאי לך לסלוח מערכות משובצות זעירות. האם לא! אני לאחרונה מועבר קושחת המדפסת 3D מרלין לוח A8 Anet – מעבד 8 סיביות עם זיכרון קטן – כי היה על הקושחה Repetier עבור הרבה שנים. בפעם הראשונה ניסיתי לעשות תחקיר autolevel קיבלתי את ההודעה: חיטוט נכשל. זהו זה.

אני מסכים איתך, כי אתה יכול להפעיל autolevel באגים כדי לקבל מידע הרבה יותר, אבל אני כבר ניצול פלאש 98%, כך שיחייב זמני הסרת חבורה של תכונות ובנייה מחדש את הקוד. אבל למה לא לעשות כמו שהיינו עושים בימים ההם:

יחידת global_error = 0;
do_something הריק (void) {
global_error = 1;
אם (process1 () == FAIL) בתמורה;
global_error ++;
אם (process2 () == FAIL) בתמורה;
. . .

global_error = 0;
לַחֲזוֹר;
}
זה לא לוקח הרבה מקום. עכשיו אתה יכול לדווח משהו כמו חיטוט נכשל (8) ואני יכול לפחות ללכת לקוד להבין מה הצעד -8 היה נכשל כי. אני בטוח שמישהו היה אפילו לפרסם רשימה של קודים ומה הם הצביעו במקרה כזה.

תקורה יותר מדי? תגיד לי דלפק תוכנית שבו אירע השגיאה. זה היה אמור להיות נוהג נפוץ למדי. אמנם, זה מחייב אותך יש קובץ מפת זיכרון ולדעת איך לקרוא את זה אבל זה עדיין יותר טוב מכלום.

אנחנו מבלים הרבה זמן לחשוב על פרויקטים איך וחייבת תוכנת עבודה. אבל אנחנו צריכים לבלות זמן לחשוב, מדי, על מה קורה כאשר הם לא עובדים. זה בסדר כי אנחנו יכולים לעשות במעגל באגים או להתחבר נתח לוגיקה, אבל זה לא יעזור למשתמשים שלנו. אפילו אם זה רק בשבילך, למה לא לעשות את זה קצת הרבה יותר קל על עצמך?

כפי שאמרנו בעבר, “אין דבר כזה יותר מדי מידע.” בנוסף שמירה נגד שגיאות מערכת, אתה גם יכול לסייע למשתמשים לא להדהים את עצמם.

אשראי תמונה: [אליסה Ventur] באמצעות Unsplash.com

Leave a Reply

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