Quick Start
Build your first diagram in six steps
Snabbstart
Skapa ditt första validerade arkitektoniska diagram i sex steg. Varje steg introducerar en ny datorkoncept. Slutligen har du en fullstÀndig, utformad och begrÀnsningsvis kontrollerad diagram som du kan exportera som SVG.
Följ instruktionerna i Live Editor: LĂ€gg in varje fragment och klicka pĂ„ Valideraâ.
Steg 1 Skriv dina första knoppar och kanter
Varje fil börjar med en magisk header. DÀrefter ska du ange *knot* (enheter) och *kant* (förhÄllanden). LÀgg in detta i redaktören:
#!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 }Magic-header behövs
LÄnet #!DATRO 1.0 i linje 1 Àr obligatoriskt. Parseraren returnerar E100 om den saknas.
Steg 2 LÀgg till `attrs` för att fÄ större metadata
Blocket attrs innehÄller eventuella nyckelvÀrde metadata. VÀrden kan vara tecknade rader, siffror, bokvÀrden eller arrayer. Gemensamma attribut Àr tech, owner, deprecated och sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Attribut vidarebefordras till JSON IR och visas som verktygstyper i den hÀrdade SVG AnvÀndbar för redo- och SLA-metadata.
Steg 3 LĂ€gg till Edge-metadata
Kanten har en typ (semantisk relationstype), en optionala etikett, en vikt (relativ dataflöde) och en asynchrons flagg. Asynkrona kantar framstÀlls som linjer.
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 | Semantisk relationstyp |
label | string | No | â | Kort text som visas pĂ„ kantlinjen |
weight | number | No | 1.0 | Relativt trafikvikt tyngre kanter blir tjockare |
async | boolean | No | false | Om true, Àr kanten fÀrgad (fjÀder- och glömsmönster). |
Steg 4 Gruppera knoppar i grupper
AnvÀnd en group-block för att gruppera relaterade knoppar. Grupper visas i SVG som markerade underdiagramfÀlt. En knopp kan endast vara en grupp.
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" }Grupper vs. node.group
Du kan ocksÄ tilldela en grupp direkt vid knoppen med group: data_tier. BÄda stilen Àr giltiga; listan members av blocket group har företrÀde.
Steg 5 LÀgg till en arkitektonisk begrÀnsning
BegrÀnsningar Àr maskinverifierade arkitektoniska regler. Valideraren bedömer det utifrÄn IR och returnerar E501-fel om en regel bryts.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}Regeln database!-> external innebĂ€r att inga knop av typen database fĂ„r ha en riktad kant mot nĂ„gon knop av typen external. Detta blockerar oavsiktliga direkt DB â API-anvĂ€ndningar frĂ„n tredje part.
Steg 6 LĂ€gg in layoutledningar och ett tema
Kontrollera anordningen av diagrammet med ett layout-block och definiera en fÀrgpalet med ett theme-block. TillgÀnglighetsprovet ger upphov till W602 nÀr en fÀrg faller under WCAG AA-kontrasten.
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-kontrasten sker automatiskt
DOT-exportern vÀljer automatiskt en svart eller vit skriftfÀrg för varje knutfyllning genom att anvÀnda WCAG 2.1:s relativa ljusformel ingen konfiguration krÀvs.
NĂ€sta steg
- LÀs Language Reference för den fullstÀndiga syntaxen för varje blocktyp.
- AnvÀnd CLI Reference för att validera, formatera och exportera via kommandotrÀckarna.
- LĂ€r dig hur man skapar dokument med Remark- eller Markdown-it-plugin [embed diagram i Markdown].
Din diagram Ă€r redo för rendering Klicka pĂ„ Render â SVG i redigeringssymbolbalen.