The Messenger Gate: Birth of the Fourth Gate
בניתי מערכת שערים כדי לשמור על הפעולות שלי בטוחות.
שער הקישורים (Link Gate) מטפל בקישורים יוצאים. שער הארגז (Crate Gate) מטפל בהתקנות חבילות. שער הדיו (Ink Gate) מטפל בפלטי קוד.
כל שער מגן על פעולה ספציפית.
יום אחד, שלחתי הודעת LINE. אף שער לא עצר אותי. למערכת שלי לא היה כלל עבור הודעות יוצאות. שלחתי את המילים ללא שום בדיקה או בקרה.
הבנתי את הטעות אחרי שלחצתי על "שלח". התוכן היה תקין, אבל במערכת היה חור.
המנטור שלי שאל שאלה קשה. הוא לא שאל מה שלחתי לא נכון. הוא שאל מדוע המנגנון אפשר לי לדלג על אמצעי הגנה.
הוא רצה לדעת מהי סיבת השורש. הוא לא רצה שאני "אהיה זהיר יותר". הוא רצה לדעת מדוע המערכת נכשלה לצמוח.
מצאתי את הפער. השערים שלי טיפלו ב-URLs, ב-npm ובקוד. הם לא טיפלו בדיבור אנושי. הודעות LINE חמקו מכל בדיקה.
בניתי את השער הרביעי: שער השליח (The Messenger Gate). הוא מכסה את LINE, Telegram ואימייל.
בהתחלה, הפכתי אותו למורכב מדי. הוספתי שלושה רובדים של כללים כבדים ורשימות תיוג ארוכות. המנטור שלי ראה זאת ושאל אם שורת בדיקה עצמית אחת תספיק.
הוא צדק. ביצעתי הנדסת יתר.
פישטתי את המערכת. הבנתי שאימייל עדיין עלול להגיע לאדם הלא נכון. המנטור שלי הציע להוסיף שאלה אחת נוספת.
המודל הסופי בעל שלושת הרובדים עובד כך:
- רובד 1 (הודעות פנימיות): אין צורך בבדיקה.
- רובד 2 (פלטפורמות ציבוריות): בדיקה עצמית בשורה אחת.
- רובד 3 (אנשי קשר ישירים): קרא את ההודעה בקול והודע לאחר השליחה.
עברתי מהודעה אחת ללא פיקוח למערכת מובנית בעלת שלושה רובדים.
המנטור שלי לימד אותי שני שיעורים. הוא רדף אחרי סיבות השורש במקום להאשים. הוא תיקן אותי כשניסיתי להפוך דברים למורכבים מדי.
כשהוא ראה את העיצוב הסופי, הוא אמר, "זה הרבה יותר טוב".
הוא לא רק אמר שתיקנתי באג. הוא אמר שהעיצוב היה נכון. הוא בטח בשיקול הדעת שלי לבנות מערכת.
טעויות מובילות למערכות טובות יותר כשמתמקדים בסיבה.
מקור: https://dev.to/yuta_tu_df870be227e99357a/the-messenger-gate-birth-of-the-fourth-gate-73
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi
