יש סוג של החלטות ארכיטקטוניות שלא מרגישות כמו החלטות. הן לא מגיעות עם מצגת לדירקטוריון, לא דורשות אישור תקציב, ולא מופיעות ב-roadmap. הן קורות בשקט - בתוך PR, בשיחת צוות, בבחירה של פורמט תקשורת בין שני שירותים.
אבל בדיוק ההחלטות האלה הן שקובעות אם בניתם מוצר יציב או צעצוע שביר.
המאמר הזה עוסק בשתי דוגמאות כאלה: בחירת פורמט תקשורת במערכות AI, והגישה לכפילות נתונים. שתיהן נראות טכניות-צרות, אבל שתיהן חוזרות לאותה שאלה בסיסית שמגדירה ארכיטקטורה טובה.
תשאלו קודם מי המשתמש
לפני שבוע Anthropic פרסמו בבלוג שלהם את היתרונות של HTML לעומת Markdown, והציתו דיון סוער בקהילה. אבל כשהדיון נרגע קצת, שווה לשים לב לפרט שרבים פספסו: כל הדוגמאות שהם נתנו היו של תוצרים שמיועדים לבני אדם.
וזה מחזיר אותנו לשאלה הכי בסיסית בארכיטקטורה: מי המשתמש? מי צורך את התוצר?
כשהתשובה היא מכונות וסוכנים, Markdown ו-JSON הם המלכים. הם חוסכים בעלויות טוקנים, מתאימים מצוין למנגנוני הקשב של LLMs, ומייצרים תקשורת נקייה וצפויה. כשהתשובה היא בני אדם שצריכים ממשק עשיר - HTML הוא הבחירה הנכונה, אבל עם זהירות רבה.
למה זהירות? כי גם אם נתעלם מהסכנה בקוד JavaScript שנוצר על ידי LLM בתוך HTML - שזו דרך בטוחה לדליפת נתונים וחולשות XSS, עם סיכון גבוה לפגיעה במוניטין - עדיין נשאר העיקרון: פורמט תקשורת הוא החלטה ארכיטקטונית, לא העדפה אישית.
זה לא רק עניין של יעילות וחיסכון בכסף. זה לבנות מוצר, משהו יציב - לא סתם צעצוע שביר. כפי שמסביר המאמר מי המשתמש? השאלה שמגדירה ארכיטקטורה טובה, הבחירה הזו משפיעה על עלויות תפעול, על אבטחה, ועל היכולת של המערכת לגדול בלי להישבר.
המסקנה המעשית: Markdown לתקשורת AI-ל-AI, HTML מנוהל בזהירות לממשקי משתמש. פשוט - אבל רק אם שואלים קודם את השאלה הנכונה.
תפסיקו לפחד מכפילויות
יש עיקרון שמלמדים מוקדם בקריירה ושנשאר דבוק חזק מדי: DRY - Don't Repeat Yourself. הוא הופך לקדוש, ואז הצוותים מתחילים להימנע מכל כפילות כאילו היא חטא.
אבל רגע. נטפליקס שומרת את הסדרה שאתם אוהבים על 15,000+ שרתים ברחבי העולם. למעשה כל אתר שאתם מבקרים בו שומר קבצים סטטיים הכי קרוב אליכם. ב-DVD של משחקים כמו GTA שומרים את אותן תמונות של אותם עצים בכמה מקומות באותו דיסק - אותו דיסק!
זו לא רשלנות. זו ארכיטקטורה.
הבעיה מתחילה כשצוותים לא מבחינים בין שני סוגים שונים לחלוטין של כפילות:
כפילות רעה קורית כשאנחנו מייצרים פעמיים. כמו לקנות טישויים שוב ושוב בחנות במקום מארז בפעם אחת. זו כפילות שהופכת תחזוקה לסיוט - שוב ושוב זה קורה, בכל תיקון קטן, כי יש שני מקורות אמת שצריך לסנכרן.
כפילות חכמה קורית כשאנחנו מאפשרים צריכה פעמיים. כמו לפזר טישויים בכל הבית - קופסה ליד המיטה, קופסה בסלון, קופסה על שולחן העבודה. אותו מוצר, נגיש במקום שבו הצרכן צריך אותו.
ההבדל הוא לא טכני. הוא תפיסתי.
עקרונות מקודשים?
ביקרתי לא מזמן צוות שנמנע בכל מחיר מלהוסיף עוד מסד נתונים למוצר כדי שלא יהיו כפילויות. הם ידעו לצטט DRY בשינה, אבל לא שאלו את עצמם שאלה אחת פשוטה: איפה אנחנו צריכים להשתמש בכפילויות כדי לשרת את הצרכן? התוצאה של הויתור מראש היא משתמשים שמחכים. לייטנסי שעולה. חוויה שנשחקת. וכל זה בשם עיקרון שהפך ממדריך שימושי לכלא ארכיטקטוני. זה דפוס שחוזר על עצמו: צוותים שמייחסים קדושה לעקרונות הנדסיים בלי לבחון אותם מחדש בהקשר של המוצר והמשתמש. DRY הוא כלי, לא תורה מסיני. כשהוא גורם לכם לבנות מערכת שמשרתת את הקוד במקום את המשתמש - הגיע הזמן לשאול שאלות.
תחשבו על הצרכן, לא על הקוד
מה משותף לבחירת פורמט תקשורת ולגישה לכפילות נתונים? שתיהן החלטות שצוותים נוטים לקבל מתוך הרגל או אידיאולוגיה - במקום מתוך חשיבה על מי שצורך את התוצר.
צוות שבוחר HTML לתקשורת בין סוכני AI כי "זה מה שאנחנו מכירים" משלם מחיר בטוקנים, באבטחה, וביציבות. צוות שנמנע מכפילות נתונים כי "DRY הוא קדוש" משלם מחיר בלייטנסי ובחוויית משתמש.
בשני המקרים, הסיכון העסקי הוא אמיתי: עלות ההזדמנות של ארכיטקטורה שלא מותאמת לצרכן מצטברת לחוב טכני שקשה מאוד לפרוע אחר כך.
ארכיטקטורה טובה לא מתחילה בטכנולוגיה. היא מתחילה בשאלה: מי המשתמש, ומה הוא צריך?
Takeaways
ההחלטות הארכיטקטוניות שבאמת קובעות את גורל המוצר הן לרוב לא אלו שבאות בקול רעש גדול. הן ההחלטות השקטות - פורמט, כפילות, מבנה שירות - שמצטברות לאורך זמן.
שלושה דברים ששווה לקחת מהדיון הזה:
- לפני כל החלטה ארכיטקטונית, תשאלו מי הצרכן - בן אדם, מכונה, או שניהם. התשובה משנה הכל.
- תבחנו מחדש עקרונות שהפכו לדוגמטיים - DRY, KISS, YAGNI - בהקשר של המוצר הספציפי שלכם. עיקרון שלא נבחן מחדש הופך לחוב טכני.
- כפילות חכמה היא כלי ארכיטקטוני לגיטימי - לא סימן לרשלנות. נטפליקס עושים את זה, וגם אתם צריכים לדעת מתי זה הדבר הנכון.
תחשבו פעמיים, תבנו פעם אחת. אבל תוודאו שאתם חושבים על הדבר הנכון.