Quick Start
Build your first diagram in six steps
התחלה מהירה
בנה את דיאגרמת הארכיטקטורה המאומתת הראשונה שלך בשישה שלבים. כל שלב מציג קונספט אחד חדש של דאטרו. בסוף יהיה לך דיאגרמה מלאה, מעוצבת, מסומנת אילוצים מוכנה לייצוא כ-SVG.
עקוב אחריו בעורך החי - הדבק כל קטע ולחץ על אימות.
שלב 1 - כתוב את הצמתים והקצוות הראשונים שלך
כל קובץ .dtro מתחיל בכותרת קסם. אחריו, הכריז על צמתים (ישויות) וקצוות (יחסים). הדבק את זה בעורך:
#!DATRO 1.0
node frontend { type: web label: "React App" }
node backend { type: service label: "NestJS API" }
node db { type: database label: "PostgreSQL" }
edge frontend -> backend { kind: http }
edge backend -> db { kind: query }נדרשת כותרת קסם
השורה #!DATRO 1.0 בשורה 1 היא חובה. המנתח מחזיר E100 אם הוא חסר.
שלב 2 - הוסף `attrs` למטא נתונים עשירים יותר
הבלוק attrs מכיל מטא נתונים שרירותיים של ערך מפתח. ערכים יכולים להיות מחרוזות, מספרים, בוליאנים או מערכים. תכונות נפוצות הן tech, owner, deprecated, ו-sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}תכונות עוברות ל-JSON IR ומופיעות כטיפים בכלים ב-SVG המעובד - שימושי עבור מטא נתונים בזמן קריאה ו-SLA.
שלב 3 - הוסף מטא נתונים של קצה
לקצוות יש סוג (סוג קשר סמנטי), תווית אופציונלית, משקל (תנועה יחסית) ודגל אסינכרון. קצוות אסינכרוניים מוצגים כקווים מקווקוים.
edge backend -> stripe {
kind: http
label: "charge API"
async: false
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
kind | EdgeKind "http""grpc""query""publish""subscribe""read""write""deploys""monitors""depends""…21 total" | Yes | unknown | סוג קשר סמנטי |
label | string | No | — | טקסט קצר מוצג על קו הקצה |
weight | number | No | 1.0 | משקל תנועה יחסי - קצוות כבדים יותר הופכים לעבים יותר |
async | boolean | No | false | כאשר נכון, הקצה מוצג כמקווקו (דפוס אש ושכח) |
שלב 4 - קבץ צמתים לאשכולות
השתמש בבלוק קבוצה כדי לאסוף צמתים קשורים. קבוצות מוצגות כתיבות תת-תווית ב-SVG. צומת יכול להשתייך לקבוצה אחת בלבד.
group data_tier {
label: "Data Layer"
members: [db, redis_cache]
}
node redis_cache { type: cache label: "Redis" }
edge backend -> redis_cache { kind: read label: "session" }קבוצות לעומת node.group
אתה יכול גם להקצות קבוצה ישירות על הצומת עם group: data_tier. שני הסגנונות תקפים; רשימת ה-members של הבלוק group מקבלת עדיפות.
שלב 5 - הוסף אילוץ אדריכלי
אילוצים הם כללים ארכיטקטוניים שנבדקו על ידי מכונה. המאמת מעריך אותן מול ה-IR ומחזיר שגיאות E501 כאשר כלל מופר.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}הכלל database !-> external פירושו: לאף צומת מסוג database יכול להיות קצה מכוון לכל צומת מסוג external. זה חוסם בשוגג DB → קריאות API של צד שלישי.
שלב 6 - הוסף רמזים לפריסה וערכת נושא
שלטו כיצד הדיאגרמה מסודרת עם בלוק layout והגדר פלטת צבעים עם בלוק theme. בדיקת הנגישות מופעלת W602 אם צבע כלשהו נופל מתחת לניגודיות WCAG AA.
layout { direction: LR algo: dagre node_sep: 60 rank_sep: 120 }
theme {
palette {
service: "#D0E8FF"
database: "#FFE8C0"
web: "#E8D0FF"
cache: "#C0FFE8"
background: "#FFFFFF"
}
accessibility { min_contrast: AA }
}ניגודיות WCAG היא אוטומטית
יצואן DOT בוחר אוטומטית צבע גופן שחור או לבן עבור כל מילוי צומת באמצעות נוסחת הבהירות היחסית WCAG 2.1 - אין צורך בתצורה אפסית.
השלבים הבאים
- קרא את Language Reference עבור התחביר המלא של כל סוג בלוק.
- השתמש ב-CLI Reference כדי לאמת, לעצב ולייצא משורת הפקודה.
- למד כיצד embed diagrams in Markdown מסמכים באמצעות התוסף הערה או markdown-it.
הדיאגרמה שלך מוכנה לעיבוד - לחץ על עיבוד ← SVG בסרגל הכלים של העורך.