หน้าแรก › คู่มือ › Structurizr DSL
นำเข้าและส่งออก Structurizr DSL
Structurizr DSL คือภาษาข้อความสำหรับ C4 model ArchLens อ่านส่วนโมเดลของไฟล์ได้ workspace ที่เขียนไว้แล้วจึงกลายเป็นไดอะแกรมที่ทีมแก้ไขด้วยกัน และส่งออกไดอะแกรมกลับเป็น DSL ได้
Structurizr DSL คืออะไร
Structurizr DSL เป็นส่วนหนึ่งของ Structurizr ชุดเครื่องมือของ Simon Brown ผู้คิดค้น C4 model คุณเขียนโมเดล (person, software system, container, component และความสัมพันธ์) และมุมมองเป็นข้อความ แล้วไดอะแกรมถูกสร้างจากข้อความนั้น หลายทีมเก็บ workspace.dsl ไว้คู่กับโค้ด
workspace {
model {
customer = person "Customer"
shop = softwareSystem "Shop" {
web = container "Web app" "Lets customers buy" "React"
api = container "API" "" "Node.js"
db = container "Orders DB" "" "PostgreSQL" "Database"
}
payments = softwareSystem "Payments" "" "External"
customer -> web "Browses and buys"
web -> api "Calls" "HTTPS/JSON"
api -> db "Reads and writes" "SQL"
api -> payments "Charges cards" "HTTPS"
}
}
นำเข้า workspace ของ Structurizr
- เปิด workspace แล้วไปที่ Diagrams
- เลือก นำเข้าไดอะแกรม (Import diagram) แล้วเลือกไฟล์
.dsl(อ่านไฟล์.jsonของ ArchLens ได้ด้วย) ไม่เกิน 5 MB - ไดอะแกรมใหม่ถูกสร้างจากโมเดลในไฟล์ และเปิดขึ้นพร้อมจัดวางอัตโนมัติ เพราะ DSL ไม่มีตำแหน่ง จัดเองต่อได้ หรือกด Auto layout อีกครั้ง
วัตถุที่นำเข้ากลายเป็นส่วนหนึ่งของโมเดลของ workspace จึงวางบนไดอะแกรมอื่นได้ด้วย
อ่านอะไรได้ และข้ามอะไร
| ใน DSL | ใน ArchLens |
|---|---|
person, softwareSystem, container, component (ซ้อนกัน) | วัตถุเดียวกันในระดับเดียวกัน พร้อมชื่อ คำอธิบาย และเทคโนโลยี |
a -> b "label" "technology" | เส้นเชื่อมพร้อมป้ายและโปรโตคอล |
container ที่มีแท็ก Database | Store |
องค์ประกอบที่มีแท็ก External | วัตถุ external |
มุมมอง dynamic | flow: แต่ละขั้น a -> b ใช้ความสัมพันธ์ที่มีอยู่ ขั้นที่เขียนกลับทิศคือการตอบกลับ บล็อก { } คือขั้นตอนขนาน |
group, enterprise | อ่านทะลุ เนื้อหาข้างในเป็นของวัตถุที่ครอบอยู่ |
มุมมองอื่น styles theme !docs !adrs | ข้ามไปเงียบ ๆ (ArchLens จัดวางและซูมลงเอง) |
!include และสิ่งที่อ่านไม่ออก | ข้ามและแสดงรายการหลังนำเข้า |
นำเข้าครั้งหนึ่งอ่านได้สูงสุด 2,000 องค์ประกอบ 4,000 ความสัมพันธ์ และ 200 มุมมอง dynamic สิ่งที่ขัดกฎของโมเดล (เช่น เส้นระหว่างวัตถุกับตัวที่ครอบมันเอง) จะถูกตัดออกและนับไว้
ส่งออกไดอะแกรมเป็น Structurizr DSL
ในไดอะแกรม เปิด แชร์ (Share) มุมขวาบน (ผู้ดูเห็น Export) แล้วเลือก Structurizr DSL (.dsl): คัดลอก หรือดาวน์โหลด ต่างจาก Mermaid และ PlantUML ที่ส่งออกเฉพาะมุมมองที่เปิดอยู่ DSL ส่งออก ทั้งไดอะแกรม: ทุกวัตถุที่วางอยู่พร้อมตัวที่ครอบ ความสัมพันธ์ และหนึ่งมุมมองต่อระดับที่มีของให้แสดง
Store ถูกเขียนเป็น container ที่มีแท็ก Database และวัตถุ external มีแท็ก External ArchLens จึงอ่านไฟล์กลับมาเป็นโมเดลเดิมได้ ตำแหน่ง สีของแท็ก และภาพวาด ไม่อยู่ในไฟล์ DSL ถ้าต้องการสำเนาครบใช้ Diagram file (JSON)
นำเข้าผ่านผู้ช่วย AI
MCP server ของ ArchLens มีเครื่องมือ import_structurizr ผู้ช่วยอย่าง Claude เขียน DSL จากคำอธิบาย repository หรือเอกสารที่มี แล้วเปิด draft และนำเข้าลงไป คุณตรวจ draft แล้ว merge วัตถุที่ workspace มีอยู่แล้ว (ชนิด ชื่อ และตัวที่ครอบเหมือนกัน) จะถูกนำมาวางแทนการสร้างซ้ำ