Overview
What the Diagram Maker is and how it works
რა არის დიაგრამის შემქმნელი?
Diagram Maker არის ტექსტური პირველი არქიტექტურის დიაგრამების ინსტრუმენტი, რომელიც აგებულია Datro DSL-ზე — სტრუქტურირებული, დადასტურებული და კანონიკურად ფორმატირებული ენა პროგრამული სისტემების მონაცემების სახით აღწერისთვის და არა სურათებით.
ტილოზე ყუთების გადატანის ნაცვლად, თქვენ წერთ .dtro ფაილს. ხელსაწყოების ჯაჭვი აანალიზებს მას, ამოწმებს არქიტექტურულ წესებს, ახორციელებს WCAG კონტრასტის კოეფიციენტებს და აწვდის მას SVG, PNG ან ინტერაქტიული JSON - ყველაფერი ჭეშმარიტების ერთი წყაროდან.
დაწერეთ, დაადასტურეთ და გამოიტანეთ თქვენი პირველი დიაგრამა წუთებში.
რატომ Datro მეტი Mermaid ან draw.io?
- აკრეფილი კვანძები — 23 სემანტიკური ტიპი (
service,database,gateway,queue, …) ავტომატურად აწარმოებს თანმიმდევრულ, ფორმის სწორი დიაგრამებს. - აკრეფილი კიდეები — 21 სემანტიკური ტიპი (
http,query,publish,grpc,…) ფერების კოდირება და სტილი თქვენი კავშირების მექანიკური გადაფარვის გარეშე. - არქიტექტურული შეზღუდვები — ჩაწერეთ წესები, როგორიცაა
database !-> externalდა ვალიდატორი ახორციელებს მათ გაანალიზების დროს და არა განხილვის დროს. - კანონიკური ფორმატირი —
datro fmtგადაწერს ყველა ფაილს დეტერმინისტულ ფორმატში; diff აჩვენებს რეალურ ცვლილებებს და არა ხმაურის რეფორმირებას. - იმპორტი და შედგენა — გაყავით დიდი დიაგრამები ფაილებში
import-ის გამოყენებით, სახელთა სივრცის ალიასინგი და გამოაჩინეთ თეთრი სიები. - WCAG 2.1 ხელმისაწვდომობა — კონტრასტის კოეფიციენტები ავტომატურად შემოწმდება თქვენი თემების პალიტრასთან;
W602ირთვება, როცა AA-ს ქვემოთ დაეცემა. - მანქანით წაკითხვადი JSON IR — ყოველი დიაგრამა ახორციელებს უდანაკარგო JSON IR მოხმარებას ნებისმიერი ხელსაწყოს ჯაჭვის, CI სისტემის ან მორგებული რენდერის მიერ.
როგორ მუშაობს ხელსაწყოების ჯაჭვი
ყოველი .dtro ფაილი გადის ოთხ ეტაპს, სანამ ის გახდება დიაგრამა:
- Parse — რეკურსიული წარმოშობის ლექსერი + პარსერი გარდაქმნის თქვენს საწყის ტექსტს
DatroIRობიექტად. არასოდეს ისვრის; ყველა პრობლემა ბრუნდება როგორცDiagnostic[]ხაზის/სვეტის ზუსტი მდებარეობით. - გადამოწმება — 4 პასი: სტრუქტურული მთლიანობა → სემანტიკური შეზღუდვის შემოწმება → ინფორმაციის მინიშნებები → WCAG 2.1 კონტრასტი და ეტიკეტის სიგრძის ხელმისაწვდომობა.
- ექსპორტი — დადასტურებული IR გარდაიქმნება DOT-ში (Graphviz), Cytoscape.js JSON-ში ან უზარმაზარ JSON IR-ში.
- რენდერი — DOT გამომავალი გადაეცემა Graphviz-ს SVG ან PNG პიქსელებით სრულყოფილი გამოსავლის მისაღებად.
სრული მაგალითი
ეს .dtro ფაილი განსაზღვრავს გადახდის სერვისს ჯგუფებით, აკრეფილი კვანძებით, სემანტიკური კიდეებით, შეზღუდვის წესით, განლაგების მინიშნებებით და WCAG-ით შემოწმებული ფერის თემით - ყველაფერი ერთ ფაილში:
#!DATRO 1.0
meta {
title: "Payment Service"
version: "2.0.0"
owner: "payments-team"
sla: "99.95%"
}
group data {
label: "Data Layer"
members: [payments_db, fraud_cache]
}
node api_gw { type: gateway label: "API Gateway" }
node payment_svc { type: service label: "Payment Service" attrs { tech: "nestjs" } }
node payments_db { type: database label: "Payments DB" attrs { tech: "postgres" } }
node fraud_cache { type: cache label: "Fraud Cache" attrs { tech: "redis" } }
node stripe { type: external label: "Stripe" }
edge api_gw -> payment_svc { kind: http label: "POST /charge" }
edge payment_svc -> payments_db { kind: query }
edge payment_svc -> fraud_cache { kind: read }
edge payment_svc -> stripe { kind: http label: "charge API" }
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not call external APIs"
severity: error
}
layout { direction: LR algo: dagre }
theme {
palette { gateway: "#FFD0D0" service: "#D0E8FF" database: "#FFE8C0" cache: "#C0FFE8" }
accessibility { min_contrast: AA }
}სცადე ახლავე
ჩასვით ზემოთ მოცემული მაგალითი Diagram Maker-ის რედაქტორში და დააწკაპუნეთ Validate-ში - ნახავთ აკრეფილ დიაგნოსტიკას ხაზების ნომრებით, შემდეგ გადაიყვანეთ SVG-ზე ერთი დაწკაპუნებით.
მახასიათებლების შეჯამება
გააგრძელეთ Quick Start-ზე თქვენი პირველი დიაგრამის დასაწერად, ან გადადით პირდაპირ Language Reference-ზე სრული სინტაქსისთვის.