HCP chart ו-MakingHCPChartSkill — איך כותבים ומפיקים SVG

· עודכן בתאריך: · · HCP, Codex, SVG, Python, תכנון

היסטוריית עדכונים (גרסה ראשונה, פורסמה בתאריך 22 Feb 2026)
פרסום ראשון
לצטט את המאמר הזה(DOI: 10.5281/zenodo.22173274)

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

Go Komura (2026). HCP chart ו-MakingHCPChartSkill — איך כותבים ומפיקים SVG. KomuraSoft LLC. https://doi.org/10.5281/zenodo.22173274 https://comcomponent.com/he/blog/what-is-hcp-chart-and-making-hcp-chart-skill/

DOI (הגרסה האחרונה)
10.5281/zenodo.22173274
DOI (הגרסה הזו)
10.5281/zenodo.22173275

תוכן עניינים

  1. מה זה HCP chart
  2. הבעיה שהמאגר הזה פותר
  3. להבין את מבנה המאגר במהירות
  4. הדרכה של 10 דקות (דוגמת GCD)
  5. איך קוראים את שתי הדוגמאות
  6. מה קורה בפנים (HCP chart)
  7. סיכום

כשרוצים ש-HCP chart יהיה “תרשים שאפשר לקרוא כמפרט”, קשה לתחזק זאת רק עם תרשימים שרושמים ביד. MakingHCPChartSkill הוא מאגר skill שמפרש HCP-DSL (טקסט) לפי המפרט, ומחזיר SVG דטרמיניסטי (כלומר, אותו קלט תמיד מייצר את אותו SVG).

במאמר הזה נתחיל מהיסודות של HCP chart, ונגיע עד להרצה בפועל, הכול ברצף אחד.

ב-diagram, solid line מציינת relation שתמיד מתקיים ו-dashed line מציינת relation מותנה (התנאים מופיעים בהסבר של כל relation ב-detail page). הרשימה המלאה של ה-relations (סה”כ 14, כולל evidence ו-certainty) וההגדרות של ה-concepts המרכזיים נמצאות ב-detail page של ה-knowledge map (ביפנית). Data: JSON-LD / Turtle

1. מה זה HCP chart

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

  • בצד שמאל: “מה משיגים (המטרה)”
  • בצד ימין (הזחה עמוקה יותר): “איך משיגים (האמצעי/הפרטים)”
  • ברמה העליונה ביותר (level 0) כותבים תווית מטרה

כתיבת טקסט לפי הכלל הזה מקלה על קריאת ההתאמה בין כוונת התכנון לפרטי המימוש.

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

איור 1: HCP chart מתאר עיבוד בהיררכיה לפי ההתאמה “שמאל = מטרה, הזחה מימין = אמצעי”.

1.1. המקור של HCP וההבדל מול צורות תרשים אחרות

HCP הוא קיצור של Hierarchical ComPact description chart, צורת תרשים שנוצרה במעבדת המחקר לתקשורת אלקטרונית של יוקוסוקה, שהייתה שייכת לתאגיד הטלפון והטלגרף היפני (כיום NTT). כלומר, זו לא המצאה של המאמר הזה או של המאגר הזה, אלא סימון שהיה בשימוש ביפן עוד קודם. מבין המאפיינים שלו: אפשר לכתוב עיבוד בהיררכיה, קל להוסיף את הקשר בין נתונים לעיבוד, קל לכתוב גם בכתב יד חופשי, וההסבר ממוקם ליד הסמל ולא בתוך מסגרת, כך שהרבה תוכן נכנס בדף אחד.

כשמשווים לצורות תרשים אחרות, קל יותר לראות את מיקומו.

צורת תרשים איך מייצגים מבנה ההבדל מול HCP chart
Flowchart מסדרים עיבוד בתיבות ועוקבים אחרי הזרימה בקווים אי אפשר לייצג היררכיה של “איזה עיבוד הוא פירוט של איזה עיבוד”. כשההסתעפויות רבות, הקווים נוטים להצטלב
NS Chart (Nassi-Shneiderman, תרשים מובנה) מייצגים מבנה במלבנים מקוננים ההסבר נכתב בתוך התיבה, ולכן בהיררכיה עמוקה או הסבר ארוך נוטה להיגמר הרוחב
PAD מבנה עץ, מתפרט משמאל לימין הכיוון “שמאל = מטרה, ימין = אמצעי” קרוב לרעיון של HCP. ב-HCP הסמלים מבוססי עיגול, וההסבר מתווסף מימין לסמל

מעבר לזה, מה שייחודי למאגר MakingHCPChartSkill שבו עוסק המאמר הזה, אינו הסימון עצמו אלא שני הדברים הבאים:

  • HCP-DSL לכתיבת HCP chart כטקסט, ומפרט הפרשנות שלו (references/hcpchartspec.md)
  • מוסכמת רזולוציית התיאור: “ב-level 0 כותבים רק תווית מטרה, וכתיבה בסגנון קוד כמו השמה או השוואה מורידים לצומת ילד”. זה כלל חובה שהמאגר קובע, ולא כלל כללי של HCP chart
הפרדה בין הסימון הכללי לחלק הייחודי למאגרHCP chart כשלעצמו הוא סימון קיים שנוצר במעבדת המחקר של יוקוסוקה, ומה שייחודי למאגר הזה הוא רק שני דברים — HCP-DSL ומפרט הפרשנות שלו, ומוסכמת רזולוציית התיאור.HCP chart (סימון קיים)החלק הייחודי ל-MakingHCPChartSkillHCP-DSL ומפרט הפרשנותמוסכמת רזולוציית התיאורlevel 0 מכילה רק תווית מטרה

איור 2: הסימון עצמו הוא צורת תרשים ותיקה, וייחודי למאגר הזה הם רק שני דברים — HCP-DSL ומוסכמת רזולוציית התיאור.

1.2. איך כותבים HCP-DSL (טבלת תחביר מהירה)

התמונה הכללית של אופן הכתיבה מסוכמת בטבלה הבאה. המפרט המפורט נמצא ב-references/hcpchartspec.md, ואם צריך רק את העיקר — ב-references/hcp-chart-schema.md.

סוגי שורות

צורת השורה טיפול
שורה ריקה מתעלמים ממנה
שורה שמתחילה (לא כולל רווחים) ב-# מתעלמים ממנה כהערה
שורה שמתחילה (לא כולל רווחים) ב-\ או ב-¥ שורת פקודה. שם הפקודה נמשך עד לרווח הראשון, ומה שאחריו הם הארגומנטים
כל השאר מצוירת כצומת עיבוד רגיל (עיגול)

הזחה (היררכיה)

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

פקודות

פקודה משמעות לתשומת לב
\title / \author / \date / \version מידע כותרת אם נכתב לפני \module — משותף לכל ה-modules; אם נכתב אחרי — נדרס רק ב-module הזה
\module <שם> תחילת module חובה. אפשר לכתוב רק ב-level 0. module באותו שם גורם ל-error
\mod <תווית> קריאה ל-module/פונקציה מצוירת כעיגול כפול בתרשים
\repeat <תווית> חזרה התוכן החוזר נכתב רמה אחת למטה
\fork <תווית> הורה של הסתעפות (ניתוב) ענפי ההסתעפות ממוקמים ישירות מתחת
\true <תווית> / \false <תווית> ענפי הסתעפות true/false ניתן למקם רק ישירות מתחת ל-\fork (רמה אחת עמוקה יותר בלבד). אם אין \fork באב-הקדמון — error
\branch <תנאי> ענף הסתעפות מרובה שאינו true/false כנ”ל
\return [n] יציאה n הוא מספר שלם אופציונלי
\ec <תווית> / \ex <תווית> בדיקת שגיאה / יציאת שגיאה בגרסה הנוכחית זה רק ציור, ואין לזה משמעות של שליטה
\data <שם> הגדרת נתונים השם לא יכול להכיל רווח או . (אחרת error)
\in <שם> / \out <שם> הערת נתוני קלט/פלט מטופל כהערה לצומת ההורה רמה אחת מעל

דוגמה מינימלית נראית כך. פשוט מתחילים מ-\module, שמים מטרה משמאל ואמצעי מימין.

\module main
לקבל קלט ולבדוק תנאים מוקדמים
    לוודא שהערך הוא מספר שלם חיובי
\fork האם הקלט תקין
    \true כן
        להריץ את העיבוד העיקרי
    \false לא
        להחזיר כשגיאה לצד הקורא
        \return
להחזיר תוצאה
זרימת העיבוד שמתארת ה-DSL המינימלימתחילים מ-module, בודקים תנאים מוקדמים של הקלט, מסתעפים לפי תקינות הקלט — אם תקין מריצים את העיבוד העיקרי ומחזירים תוצאה, ואם לא — מחזירים כשגיאה לצד הקורא.כןלאהתחלת module mainלקבל קלט ולבדוק תנאים מוקדמיםהאם הקלט תקיןלהריץ את העיבוד העיקרילהחזיר כשגיאה (return)להחזיר תוצאה

איור 3: זרימת הדוגמה המינימלית. מתחילים מ-module, שמים את המטרה משמאל, ומציבים את הענפים true ו-false ישירות מתחת ל-fork.

2. הבעיה שהמאגר הזה פותר

כשמנהלים רק תרשימים בידיים, נוטות לקרות בעיות כאלה.

  • פער בין התרשים לטקסט המפרט
  • אי-בהירות במגבלות של ההסתעפויות וההיררכיה
  • קושי בסקירת diffs

ב-MakingHCPChartSkill, מעבירים את ה-HCP-DSL כבקשת JSON, ו-hcp_render_svg.py מבצע validation ו-render. כי אותו קלט תמיד נותן אותו פלט, קל לשלב את התרשים ב-CI או בסקירות.

הבעיה בניהול ידני של תרשימים והפתרון בניהול טקסטואליניהול תרשימים בידיים בלבד גורם לפער מול טקסט המפרט ולקושי בסקירת diffs, לעומת זאת העברת HCP-DSL כבקשת JSON גורמת ל-hcp_render_svg.py לבצע validation ו-render ולקבל SVG דטרמיניסטי.ניהול תרשימים בידיים בלבדפער, אי-בהירות, קושי בסקירת diffsהעברת HCP-DSL כבקשת JSONhcp_render_svg.py מבצע validation ו-renderמתקבל SVG דטרמיניסטיניתן לשלב ב-CI או בסקירות

איור 4: במקום לצייר תרשים ביד, מייצרים SVG באופן דטרמיניסטי מתוך טקסט ה-HCP-DSL, כך שאפשר לשלב בסקירת diffs וב-CI.

3. להבין את מבנה המאגר במהירות

המאגר הרלוונטי: https://github.com/gomurin0428/MakingHCPChartSkill

  • hcp-chart-svg-v2/SKILL.md אופן השימוש ב-skill והמגבלות שלו (כמו איסור ציון בו-זמנית של renderAllModules ו-module).
  • hcp-chart-svg-v2/scripts/hcp_render_svg.py הסקריפט הראשי שמאמת קלט JSON, מפרש את ה-HCP-DSL ומחזיר תגובת SVG.
  • hcp-chart-svg-v2/references/ מסמכי מפרט, דוגמאות request/response, ודוגמאות SVG.
  • hcp-chart-svg-v2/scripts/hcp_xml_to_svg.py deprecated. כיום משתמשים ב-hcp_render_svg.py.
מבנה הקבצים המרכזיים במאגרתחת hcp-chart-svg-v2 יש את SKILL.md שמתאר את אופן השימוש והמגבלות, את הסקריפט הראשי hcp_render_svg.py, ואת references שמכיל מפרט ודוגמאות, בעוד הסקריפט הישן hcp_xml_to_svg.py הוא deprecated.hcp-chart-svg-v2SKILL.md (אופן שימוש ומגבלות)hcp_render_svg.py תחת scriptsreferences (מפרט ודוגמאות)hcp_xml_to_svg.py הוא deprecated

איור 5: הכניסה היא SKILL.md, הליבה היא hcp_render_svg.py, והמפרט והדוגמאות מרוכזים תחת references.

4. הדרכה של 10 דקות (דוגמת GCD)

סביבה נדרשת

פריט תוכן
Python hcp_render_svg.py רץ על Python 3. אין ציון מפורש של גרסה מינימלית במאגר, אבל כי הוא משתמש ב-dataclasses וב-from __future__ import annotations, הוא פועל מגרסה 3.7 ואילך
חבילות נוספות לא נדרשות. נעשה שימוש ב-argparse / json / logging / math / re / sys / dataclasses / pathlib / typing / xml.sax.saxutils, כולן ספריות תקן
Shell הפקודות הבאות כתובות בהנחת PowerShell של Windows. אם יש תווים לא קריאים, יש להגדיר UTF-8 במפורש לפני ההרצה עם $env:PYTHONUTF8 = "1" ו-chcp 65001
Codex נדרש רק אם ממקמים כ-skill בסעיף 4.2. אם לא משתמשים ב-Codex, אפשר לדלג על 4.2 (4.3 ואילך פועלים עם הסקריפט לבדו)

4.1. משכפלים את המאגר

git clone https://github.com/gomurin0428/MakingHCPChartSkill.git
cd .\MakingHCPChartSkill

4.2. ממקמים את ה-skill ב-Codex המקומי

Codex, כאן, הכוונה לסוכן הקידוד של OpenAI. $HOME\.codex (ב-Windows: C:\Users\<שם המשתמש>\.codex) היא תיקיית ההגדרות שלו, וב-README של המאגר מוסבר תהליך של העתקת התיקייה כולה אל skills\<שם ה-skill> שתחתיה. כשעושים זאת, אם מבקשים מהסוכן “צייר HCP chart”, הוא יקרא ל-renderer בהתאם להוראות של SKILL.md הזה.

Copy-Item -Recurse -Force .\hcp-chart-svg-v2 "$HOME\.codex\skills\hcp-chart-svg-v2"

השלב הזה אינו חובה. ה-renderer הוא סקריפט עצמאי שמקבל --input ו---output, ולכן מי שלא משתמש ב-Codex יכול לעבור ישירות ל-4.3.

4.3. מייצרים תגובת SVG מקלט לדוגמה

python .\hcp-chart-svg-v2\scripts\hcp_render_svg.py `
  --input .\hcp-chart-svg-v2\references\example-gcd-request.json `
  --output .\hcp-chart-svg-v2\references\example-gcd-response.json `
  --pretty

4.4. מוציאים SVG מתוך JSON התגובה

$r = Get-Content -Raw .\hcp-chart-svg-v2\references\example-gcd-response.json | ConvertFrom-Json
$r.svg | Set-Content -NoNewline -Encoding utf8 .\hcp-chart-svg-v2\references\example-gcd.svg
הזרימה לקבלת SVG בהדרכהמעבירים JSON בקשה לדוגמה ל-hcp_render_svg.py, מקבלים JSON תגובה, מוציאים ממנו את המאפיין svg, ושומרים כקובץ SVG.JSON בקשה לדוגמהמריצים את hcp_render_svg.pyמתקבל JSON תגובהמוציאים את מאפיין svgשומרים כקובץ SVG

איור 6: זרימת ההדרכה. מעבירים JSON בקשה לסקריפט, וכותבים את ה-svg מהתגובה לקובץ.

4.5. הערה (מגבלות קלט)

  • כש-renderAllModules=true, אי אפשר לציין module.
  • אם ב-diagnostics יש error, svg או svgs יהיו ריקים.

5. איך קוראים את שתי הדוגמאות

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

  1. קוראים קודם את העמודה השמאלית ביותר בלבד, מלמעלה למטה. מה שמסודר כאן הוא “מה משיגים (המטרה)”, ומהווה את תמצית העיבוד כולו
  2. מהשורה שמעניינת, עוברים ימינה. מה שמסודר בהזחה ימנית הוא “איך משיגים את המטרה הזו (האמצעי/הפרטים)”
  3. מוודאים יחסי הורה-ילד לפי הקו האנכי (הגזע). הגזע מחבר עיבודים באותו עומק, ומצויר כך שלא חוצה שורות בעומק רדוד יותר
איך מזיזים את העין כשקוראים HCP chartקודם קוראים את העמודה השמאלית מלמעלה למטה כדי לתפוס את תמצית העיבוד, אחר כך עוברים ימינה מהשורה שמעניינת כדי לבדוק אמצעים ופרטים, ולבסוף מוודאים יחסי הורה-ילד לפי הקו האנכי.קוראים את העמודה השמאלית מלמעלה למטהתופסים את תמצית העיבודעוברים ימינה מהשורה שמעניינתבודקים אמצעים ופרטיםמוודאים הורה-ילד לפי הקו האנכי (הגזע)

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

משמעות הסמלים היא כדלקמן.

סמל משמעות
○ (עיגול) עיבוד רגיל
עיגול כפול קריאה ל-module/פונקציה (\mod)
חץ מעגלי בתוך עיגול חזרה (\repeat)
משולש פונה ימינה בתוך עיגול הורה של הסתעפות (\fork)
חץ שיוצא ימינה מהגזע ענף הסתעפות (\branch / \true / \false). התנאי נכתב מימין לחץ
משולש פונה מטה יציאה (\return)
○ עם × בתוכו בדיקת שגיאה (\ec)
שני עיגולים קטנים יציאת שגיאה (\ex)

5.1. אלגוריתם אוקלידס (GCD)

  • דוגמת קלט: example-gcd-request.json
  • דוגמת פלט: example-gcd-response.json

HCP chart של דוגמת GCD

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

אם קוראים רק את העמודה השמאלית ביותר, מקבלים שלוש שורות: “מקבלים את ערך הקלט ומתכוננים לחישוב → מתקרבים למחלק המשותף הגדול ביותר כל עוד נשארת שארית → מחזירים את התוצאה למשתמש”, ומהן בלבד אפשר להבין את תמצית האלגוריתם. חישוב קונקרטי כמו r <- a mod b מוזח עוד יותר ימינה, אל מתחת ל”קביעת הערך שמועבר לפעם הבאה” שבתוך הלולאה. יחס המיקום הזה הוא בדיוק ההתאמה בין “מטרה (שמאל)” ל”אמצעי (ימין)”. אם r <- a mod b היה מופיע פתאום בעמודה השמאלית ביותר, זה היה סימן להפרה של מוסכמת רזולוציית התיאור (1.1).

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

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

גם שורת Data: שבחלק העליון של התרשים, וגם ההערות in: / out: שמתחת לכל צומת, הן רמזים נוספים לקריאה. בתרשים הזה מופיעים in: a, b ו-out: a, כך שאפשר להבין רק מהתרשים היכן הכניסה והיכן היציאה.

5.2. תהליך אישור הזמנה

  • דוגמת קלט: example-order-approval-request.json
  • דוגמת פלט: example-order-approval-response.json

HCP chart של דוגמת אישור הזמנה

גם בתהליך עסקי, אפשר לתאר במפורש את כוונת ההסתעפות באמצעות fork ו-true/false.

גם כאן העמודה השמאלית ביותר היא שלוש שורות בלבד: “מקבלים את תוכן ההזמנה → מחליטים אם אפשר לשלוח → מחזירים את תוצאת העיבוד”. פעולות שקרובות יותר למימוש, כמו בדיקת מלאי, בקשת אישור ורישום משלוח, כולן נמצאות בהזחה ימנית. ההסתעפות מיוצגת בחץ שיוצא ימינה מהגזע, ומתחת ל-(כן) / (לא) תלוי כל עיבוד בהתאמה. את ההחלטה העסקית “אם חסר במלאי — להחזיר; אם אושר — לתאם משלוח; אחרת — להמתין” אפשר לעקוב אחריה רק על ידי מעקב אחרי החצים היוצאים משני מקומות ההסתעפות.

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

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

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

6. מה קורה בפנים (HCP chart)

תהליך העיבוד של execute_request, כשכותבים אותו ב-HCP-DSL, נראה כך.

\module main
לקבל בקשה ולבדוק תנאים מוקדמים
    לאמת את השדות הנדרשים ב-JSON הקלט
לפרש את ה-DSL ולבנות מבנה
    לפרש modules והיררכיה
    לאסוף diagnostics
לבחור מסלול תגובה לפי תוצאות האבחון
    \fork האם קיים error
        \true כן
            להחזיר payload מסוג SVG ריק
        \false לא
            לקבוע את ה-module המיועד לציור
            \fork האם renderAllModules הוא true
                \true כן
                    לייצר SVG לכל ה-modules
                    לבנות JSON תגובה הכולל svgs
                \false לא
                    לייצר SVG ל-module יחיד
                    לבנות JSON תגובה הכולל svg
להחזיר תוצאה לצד הקורא

זהו התרשים שמתקבל מ-render בפועל של ה-DSL שלמעלה.

HCP chart של זרימת העיבוד הפנימית של MakingHCPChartSkill

7. סיכום

HCP chart לא רק קל לקריאה כתרשים — היתרון שלו הוא שאפשר לנהל אותו בצורה שנחשבת מפרט. כשמשתמשים ב-MakingHCPChartSkill, אפשר לאמת את ה-HCP-DSL וליצור ממנו SVG ברצף אחד.

אם רוצים לנסות בשלב הבא, מומלץ לכתוב מפרט עיבוד רגיל אחד ב-HCP-DSL, ולעצב אותו תוך התבוננות ב-diagnostics — כך קל להרגיש בפועל את התועלת של האימוץ.

מקורות

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

העמודים האלה ממקמים את הנושא בהקשר רחב יותר של שירותים והחלטות.

המאמר קשור ישירות לשירותים הבאים.

שאלות נפוצות

שאלות נפוצות בפניות בנושא המאמר.

מה זה HCP chart?
צורת ייצוג לתיאור עיבוד בהיררכיה. בצד שמאל כותבים "מה משיגים (המטרה)", ובצד ימין בהזחה עמוקה יותר כותבים "איך משיגים (האמצעי/הפרטים)", וברמה העליונה ביותר (level 0) כותבים תווית מטרה. כתיבת טקסט לפי הכלל הזה מקלה על קריאת ההתאמה בין כוונת התכנון לפרטי המימוש.
מה עושה הכלי MakingHCPChartSkill?
זה מאגר skill שמפרש HCP-DSL (טקסט) לפי המפרט, ומחזיר SVG דטרמיניסטי. כשמעבירים HCP-DSL כבקשת JSON, hcp_render_svg.py מבצע validation ו-render. אותו קלט תמיד מייצר את אותו פלט, ולכן קל לשלב את התרשימים ב-CI או בסקירות קוד.
מה ההבדל מול ניהול תרשימים בכתב יד?
כשמנהלים רק תרשימים בידיים, נוטות לקרות בעיות כמו פער בין התרשים לטקסט המפרט, אי-בהירות במגבלות של ההסתעפויות וההיררכיה, וקושי בסקירת diffs. בשיטה שמייצרת SVG באופן דטרמיניסטי מטקסט שנקרא HCP-DSL, אפשר לנהל את התרשים כמפרט, ולעצב אותו תוך התבוננות ב-diagnostics.
יש מגבלות בשימוש?
כן. renderAllModules=true ו-module לא ניתנים לציון בו-זמנית. בנוסף, אם ב-diagnostics יש error, svg או svgs יהיו ריקים. הסקריפט hcp_xml_to_svg.py הוא deprecated, וכעת משתמשים ב-hcp_render_svg.py.

פרופיל הכותב

עמוד היכרות עם כותב המאמר.

Go Komura

מנהל KomuraSoft LLC

מתמחה בפיתוח תוכנה עבור Windows, ייעוץ טכני וחקירת תקלות, בעיקר בפרויקטים עם מערכות קיימות ובאגים שקשה לשחזר.

קישורים ציבוריים

חזרה לבלוג