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