הקלטת סשן היא שחזור, לא וידאו

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

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

מה היא נותנת ש-stack trace לא

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

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

איך להשתמש בזה כשמגיע באג

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

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

מה זה לא יפתור

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

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

איך לבחור כלי במיוחד לדיבוג

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