Diagram Maker›Overview
🗂️
Overview
What the Diagram Maker is and how it works
ダイアグラムメーカーとは何ですか?
Diagram Maker は、Datro DSL をベースに構築されたテキストファーストのアーキテクチャ図作成ツールです。Datro DSL は、ソフトウェア システムを画像ではなくデータとして記述するための、構造化され、検証され、正規フォーマットされた言語です。
キャンバス上でボックスをドラッグする代わりに、.dtro ファイルを作成します。ツールチェーンは、データを解析し、アーキテクチャ ルールを検証し、WCAG コントラスト比を適用し、SVG、PNG、またはインタラクティブな JSON にレンダリングします。これらはすべて、単一の真実のソースから行われます。
ダイアグラムメーカーを開く
最初の図を数分で作成、検証、レンダリングします。
なぜ Mermaid やdraw.io ではなく Datro なのでしょうか?
- 型付きノード — 23 のセマンティック タイプ (
service、database、gateway、queue、…) により、一貫性のある正しい形状の図が自動的に生成されます。 - 型付きエッジ — 21 種類のセマンティック (
http、query、publish、grpc、…) により、手動でオーバーライドすることなく接続を色分けし、スタイルを設定します。 - アーキテクチャ上の制約 —
database !-> externalのようなルールを作成すると、バリデーターはレビュー時ではなく解析時にルールを適用します。 - 正規フォーマッタ —
datro fmtはすべてのファイルを確定的な形式に書き換えます。 diff は、再フォーマットされたノイズではなく、実際の変更を示します。 - インポートと作成 —
import、名前空間のエイリアスを使用して大きな図をファイル間で分割し、ホワイトリストを公開します。 - WCAG 2.1 アクセシビリティ — テーマ パレットに対してコントラスト比が自動的にチェックされます。
W602はAAを下回ると発射されます。 - 機械可読な JSON IR — すべての図は、ツールチェーン、CI システム、またはカスタム レンダラーで使用できるロスレス JSON IR をエクスポートします。
ツールチェーンの仕組み
すべての .dtro ファイルは、図になる前に 4 つの段階を経ます。
1 · 解析する2 · 検証する3・エクスポート4・レンダリング
- 解析 — 再帰降下レクサー + パーサーは、ソース テキストを
DatroIRオブジェクトに変換します。決して投げません。すべての問題は、正確な行/列の位置を含むDiagnostic[]として返されます。 - 検証 — 4 パス: 構造的整合性 → セマンティック制約チェック → 情報ヒント → WCAG 2.1 コントラストとラベル長アクセシビリティ。
- エクスポート — 検証された IR は、DOT (Graphviz)、Cytoscape.js JSON、またはロスレス JSON IR に変換されます。
- レンダリング — DOT 出力は Graphviz に渡され、SVG または PNG ピクセルパーフェクト出力が生成されます。
完全な例
この .dtro ファイルは、グループ、型付きノード、セマンティック エッジ、制約ルール、レイアウト ヒント、および WCAG チェック済みのカラー テーマをすべて 1 つのファイルで定義した支払いサービスを定義します。
payment-service.dtro
#!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 にレンダリングされます。
機能の概要
23 ノードタイプ21種類のエッジWCAG 2.1 AA/AAAJSON スキーマ ドラフト-07SVG・PNG・DOT・サイトスケープインポート/作成
Quick Start に進んで最初の図を作成するか、Language Reference に直接ジャンプして完全な構文を確認してください。