הדבר היחיד שחשוב
הדבר היחיד שחשוב במערכת זה הלוגים. כמה קל לזהות איפה היתה הבעיה, כמה קל לאתר תקלה שקרתה רק אצל הלקוח ולזהות את הנסיבות הייחודיות אצלו שיצרו בעיה זו.
כמה טיפים שאני משתדל לזכור:
נוח מאוד לשמור טבלא של שגיאות ב DB וכל פעם שיש שגיאה במערכת להציג למי שרואה אותה גם מזהה שגיאה שיעזור לכם אחר כך להגיע לשורה המתאימה בטבלא. בצד השרת רושמים את המזהה הזה בלוג ליד הודעת השגיאה, ובצד הלקוח מציגים למשתמש הודעה שאומרת שהוא יכול לפנות לתמיכה עם המזהה הזה. כשאתם מכניסים את פרטי השגיאה ל DB תוסיפו שם כמה שיותר מידע.
נוח מאוד לשמור את הלוגים גם במערכת לוגים חיצונית שאפשר לגשת אליה אפילו מהטלפון. יש הרבה כאלה בשוק ובמחירים לא גבוהים (חפשו cloud log storage בגוגל).
כדאי להחזיק סביבות בדיקה זמינות שיאפשרו לסמלץ את הבעיה של הלקוח. אני שומר מספר מכונות וירטואליות עם מערכות הפעלה שונות וגירסאות שונות לפי מה שהלקוחות הגדולים שלי משתמשים. בנוסף יש את Browser Stack שיכולים לתת פיתרון טוב למובייל.
נוח מאוד לשמור לוג גם של קוד ה JavaScript שרץ אצל הלקוחות שלכם. אפשר לחבר אותם ישירות למערכת הלוגים החיצונית אבל יותר קל להשתמש בהודעת Ajax לשרת שלכם שיתעד את הכל בצורה מסודרת.
נוח מאוד להשאיר את המידע כמה שיותר נגיש - לדוגמא עדיף לשמור את הקבצים שמשתמשים מעלים במערכת קבצים, או אפילו במערכת קבצים בענן (כמו S3) ולא בבסיס נתונים שתצטרכו לעבור דרך ממשק ניהול שלכם כדי להגיע אליהם. ככל שהנכסים שלכם יותר נגישים, וכמובן עם אבטחה מתאימה, כך יהיה לכם יותר קל לצלול פנימה ולזהות שגיאות.
וכמובן אחרי שכבר מצאתם את הטעות לא לשכוח להוסיף בדיקה אוטומטית כדי שהיא לא תחזור על עצמה בתיקון הבא.