דביר נעמן

תמונת כותרת לפוסט: סקיל domain-modeling לקלוד קוד
סקילים לקלוד קוד

סקיל Domain Modeling

8 דקות קריאה דביר נעמן

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

תמונת כותרת לפוסט: סקיל domain-modeling לקלוד קוד

פקודת התקנה

מפתח: Matt Pocock
קטגוריה: ארכיטקטורת קוד
התקנות: מעל 53 אלף
רישיון: קוד פתוח
npx skills add mattpocock/skills@domain-modeling -g -y

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

מה הסקיל כולל?

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

ניהול מילון מונחים חי של הפרויקט (CONTEXT.md)
אתגור הגדרות מעורפלות וחידודן לשפה מדויקת
המצאת תרחישי קצה כדי לבחון את חוזק המונחים
תיעוד החלטות ארכיטקטוניות (ADR) ברגע שהן מתקבלות
תמיכה בפרויקטים עם הקשר יחיד או עם מספר הקשרים
שמירת הידע בקבצים מקומיים, משותף לכל מי שנכנס לפרויקט

קוד הסקיל המלא

Markdown

מה זה domain-modeling ולמה הסקיל הזה שונה?

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

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

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

מה domain-modeling נותן לקלוד קוד?

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

מילון מונחים חי

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

אתגור וחידוד מונחים

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

תיעוד החלטות (ADR)

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

תמיכה בכמה הקשרים

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

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

למי הסקיל הזה מתאים?

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

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

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

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

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

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

איך domain-modeling עזר לי בפרויקטים אמיתיים

01

שפה אחידה שמנעה אי הבנות

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

ubiquitous-languageclarityteam
02

החלטה ארכיטקטונית שלא נפתחה מחדש

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

adrdecisionmemory
03

קליטה מהירה של מפתח חדש

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

onboardingglossaryspeed
04

ניהול כמה תחומים בפרויקט גדול

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

multi-contextscalemap

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

סיכום

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

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

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

שיתוף הסקיל

שאלות ותשובות

מה זה בעצם הסקיל domain-modeling?

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

מה זאת שפה אחידה ולמה היא חשובה?

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

איך מתקינים את הסקיל בקלוד קוד?

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

מה זה ADR שהסקיל מתעד?

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

האם הסקיל שולח מידע החוצה?

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

מה ההבדל בין הסקיל לבין סתם כתיבת מילון?

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

האם הסקיל מתאים לפרויקטים גדולים עם כמה תחומים?

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

האם הסקיל מתאים גם למי שאינו מתכנת?

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

דביר נעמן

על הכותב

דביר נעמן – מומחה שיווק דיגיטלי, SEO ואוטומציות

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