تخطَّ إلى المحتوى
ططارق الوليديAI Developer Tools Directory
D

D2

نشط ومستقريعمل محلياً ✓بدون اشتراك API

حوّل وصف بنية النظام إلى رسوم تلقائية قابلة للمراجعة في Git والتصدير إلى SVG وPNG وPDF وPPTX.

$brew install d2
💡

الاستخدام المثالي لهذه الأداة

يناسب مطورًا أو فريقًا صغيرًا يريد إبقاء رسوم المعمارية وتدفق البيانات قريبة من المستودع وقابلة للمراجعة كنص. استخدمه عندما تكون العلاقات أهم من التموضع بالبكسل؛ ولا تختَره لتصميم تسويقي حر أو تحكم يدوي دقيق بكل عنصر.

التفاصيل والميزات المصورة

ترسم بنية نظامك مرة، ثم تتغير خدمة أو علاقة وتبدأ الصورة بالابتعاد عن الواقع؟ D2 يحوّل الرسم إلى ملف نصي يمكن مراجعته مع الكود في Git، ثم يرتب العقد والعلاقات تلقائيًا ويصدره بصيغ مناسبة للتوثيق والعرض. فائدته العملية ليست «صورة أجمل» فقط؛ بل مصدر رسم واضح يستطيع فرد أو فريق صغير تعديله ومراجعته وإعادة إنتاجه دون سحب كل مربع يدويًا.

🧭 ما D2 وكيف ستستخدمه؟

D2 لغة وصف للرسوم وأداة سطر أوامر مفتوحة المصدر. تكتب أسماء المكونات والعلاقات في ملف امتداده .d2، ثم تشغّل الأمر d2 لإنتاج SVG افتراضيًا أو صيغة أخرى مدعومة. الأداة ليست محررًا رسوميًا سحابيًا، ولا وكيل ذكاء اصطناعي، ولا تستنتج معمارية مشروعك تلقائيًا؛ أنت تحدد المعلومات التي يجب أن تظهر وهي تتولى تحليل النص وترتيب الرسم.

مثال صغير:

users -> api: HTTPS
api -> database: SQL
api -> queue: jobs
worker -> queue: consume
worker -> database: update

احفظه باسم architecture.d2 ثم شغّل d2 architecture.d2 architecture.svg. يصبح ملف المصدر جزءًا من التوثيق، ويمكن مراجعة تغيير علاقة مثل مراجعة أي سطر آخر. المثال تعليمي ولم ننفذه على نظام إنتاجي.

ملف D2 نصي يتحول عبر التخطيط التلقائي إلى رسم بنية قابل للتصدير
ملف D2 نصي يتحول عبر التخطيط التلقائي إلى رسم بنية قابل للتصدير

🎯 الاستخدام المثالي والقيمة المضافة

يناسب D2 مطورًا، مهندس منصة، أو فريقًا صغيرًا يريد إبقاء رسوم المعمارية وتدفق البيانات قريبة من المستودع. استخدمه عندما تكون العلاقات أهم من التموضع بالبكسل: مخطط خدمات، تدفق طلب، نموذج بيانات، تسلسل، أو رسم يرافق قرارًا تقنيًا. لا تختَره إذا كان المطلوب تصميمًا تسويقيًا حرًا أو تحكمًا يدويًا دقيقًا في كل عنصر؛ فالتخطيط التلقائي مقصود وقد يختلف ترتيب العناصر بعد تعديل المصدر.

القيمة المضافة تظهر في ثلاث نقاط: مصدر نصي قابل للمقارنة في Git، إخراج متكرر من الأمر نفسه، وفصل بين المعلومة وترتيبها البصري. هذا لا يمنع الرسوم القديمة تلقائيًا؛ ما زال على الفريق تحديث ملف .d2 عندما يتغير النظام.

🌟 الميزات وطريقة العمل

1. صف العلاقات بدل تحريك الصناديق

الصياغة الأساسية قصيرة: a -> b تنشئ عقدتين وعلاقة موجهة، ويمكن إضافة تسمية وشكل ونمط. تستطيع تجميع العناصر داخل حاويات، وإعادة استخدام أنماط، وكتابة تعليقات في المصدر. عندما تُراجع التغييرات، ترى إضافة خدمة أو حذف اتصال كنص بدل محاولة اكتشاف اختلاف بصري بين صورتين.

  • كيف تستخدمها؟ ابدأ بالعقد الأساسية، أضف العلاقات، ثم شغّل المولّد وشاهد النتيجة.
  • الفائدة: يصبح الرسم قابلًا للبحث والنسخ والمراجعة مع الكود.
  • القيد: المصدر النصي لا يثبت أن المعمارية حقيقية؛ راجعه مع أصحاب النظام.
علاقات بين المستخدم وواجهة API وقاعدة البيانات مكتوبة كسطور ثم مرتبة كرسم
علاقات بين المستخدم وواجهة API وقاعدة البيانات مكتوبة كسطور ثم مرتبة كرسم

2. اختر محرك التخطيط المناسب

تضم النسخة المتحقق منها ثلاثة محركات تخطيط: Dagro افتراضيًا، وELK، وTALA المضمّن مع تفعيل اختياري. يعرض d2 layout المحركات المتاحة، ويمكن الاختيار عبر --layout=elk أو إعداد vars.d2-config.layout-engine داخل المصدر. يفيد Dagro للرسوم الهرمية العامة، بينما تصف الوثائق ELK بأنه مناسب لرسوم العقد والروابط ذات الاتجاه والمنافذ، وتوجّه TALA نحو رسوم معمارية البرمجيات.

هذه اختيارات ترتيب، وليست ضمانًا أن كل رسم سيظهر مثاليًا. جرّب المحرك على الرسم الفعلي، وثبّت الاختيار في المصدر أو أمر البناء حتى لا تتغير النتيجة بين أعضاء الفريق دون قصد.

الرسم النصي نفسه يمر عبر Dagro أو ELK أو TALA للحصول على ترتيب مختلف
الرسم النصي نفسه يمر عبر Dagro أو ELK أو TALA للحصول على ترتيب مختلف

3. صدّر الرسم حسب مكان استخدامه

توثق D2 التصدير إلى SVG وPNG وGIF وPDF وPPTX، وتصف الوثائق تصدير ASCII بأنه تجريبي. SVG مناسب لمستندات الويب لأنه متجهي، وPNG مناسب لسطح لا يتعامل جيدًا مع SVG، وPDF أو PPTX يفيدان في المستندات والعروض. لا تفترض أن كل خصائص الصيغة متطابقة؛ الروابط والخطوط والحركة تتعامل معها الصيغ بطرق مختلفة، وASCII محدود مقارنة بالرسم الرسومي.

أمثلة:

d2 architecture.d2 architecture.svg
d2 architecture.d2 architecture.png
d2 architecture.d2 architecture.pdf

وفق وثائق v0.9.0 الحالية، تصدير PNG مباشر ولا يحتاج Chromium. راجع الملف الناتج بصريًا قبل النشر، خصوصًا الخطوط والنصوص الطويلة.

مصدر D2 واحد يخرج إلى SVG وPNG وPDF وPPTX لاستخدامات مختلفة
مصدر D2 واحد يخرج إلى SVG وPNG وPDF وPPTX لاستخدامات مختلفة

4. نسّق وتحقق وشاهد التغيير حيًا

يوفر سطر الأوامر d2 fmt لتنسيق المصدر، وd2 validate لفحصه، و--watch لإعادة التوليد وفتح معاينة تتحدث عند الحفظ. يبدأ خادم المراقبة على localhost افتراضيًا. في CI، اعتمد على رمز خروج الأمر: تحذر الوثائق من أن وجود ملف إخراج لا يثبت نجاح العملية، فقد يبقى ملف جزئي أو سابق بعد خطأ.

مسار بسيط للفريق:

d2 fmt architecture.d2
d2 validate architecture.d2
d2 architecture.d2 architecture.svg

أثناء التحرير يمكنك استخدام d2 --watch architecture.d2 architecture.svg. لا تعرّض خادم المراقبة على شبكة غير موثوقة دون فهم إعدادات الربط والحماية.

تنسيق ملف D2 ثم التحقق منه وتوليد الرسم مع اعتماد رمز الخروج في CI
تنسيق ملف D2 ثم التحقق منه وتوليد الرسم مع اعتماد رمز الخروج في CI

🪜 مثال عملي: رسم خدمة طلبات

  1. أنشئ orders.d2 واكتب الخدمات والعلاقات الأساسية.
  2. شغّل d2 --watch orders.d2 orders.svg وعدّل النص حتى يصبح الرسم واضحًا.
  3. أضف تسمية لكل اتصال يحتاج القارئ إلى فهمه، ولا تحوّل الرسم إلى قائمة بكل التفاصيل الداخلية.
  4. شغّل d2 fmt وd2 validate قبل الالتزام.
  5. أضف orders.d2 والملف المولّد الذي يحتاجه موقع التوثيق وفق سياسة المستودع، ثم راجع الفرق النصي والصورة.
  6. في CI، أعد التوليد أو تحقق من أن المصدر صالح، واستخدم حالة خروج الأمر بدل فحص وجود الملف فقط.

هذا مسار توضيحي، لا تجربة أداء ولا إثبات توافق مع مستودع بعينه.

⚖️ مقارنة بالعمل اليدوي

المهمةرسم يدوي في محرر رسوميباستخدام D2
إضافة خدمة وعلاقتينإنشاء أشكال وأسهم وإعادة المحاذاةإضافة أسطر وترك التخطيط للمحرك
مراجعة التغييرمقارنة صورتين أو ملف محرر خاصفرق نصي قابل للمراجعة في Git
تكرار التصديراختيار إعدادات التصدير كل مرةأمر قابل للتكرار في الطرفية أو CI
التحكم بالبكسلقوي ومباشرأقل دقة لأن التخطيط آلي
التعاون غير التقنيواجهة السحب قد تكون أسهليحتاج تعلّم الصياغة أو مساعدة مطور

D2 لا يلغي أدوات الرسم اليدوي. اجعله مصدرًا للرسوم التي تتغير مع النظام، واستخدم محررًا بصريًا حين تكون الهوية البصرية أو التموضع الحر أهم من قابلية المراجعة.

🚀 التثبيت والتوافق

توصي الوثائق باستخدام مدير حزم نظام التشغيل مباشرة للأمان. على جهاز فيه Homebrew مسبقًا:

brew install d2
d2 version

توجد خيارات موثقة لـ macOS وLinux وWindows، وحزم إصدار جاهزة، وتثبيت من المصدر عبر Go. يعرض المستودع أيضًا سكربت تثبيت مع --dry-run، لكن تنزيل سكربت وتشغيله يمنحه صلاحيات حسابك؛ افحصه واتبع سياسة مؤسستك. لم نثبت الأداة في هذا التحقق، لذلك لا ندعي نجاح الأمر على جهاز محدد.

آخر إصدار مستقر تحققنا منه هو v0.9.0 بتاريخ 7 سبتمبر 2026. أظهر المستودع 25.8 ألف نجمة و777 تفرعًا وقت الفحص، وآخر التزام ظاهر على الفرع الرئيسي بتاريخ 12 أكتوبر 2026. الأرقام تتغير وليست تقييمًا للجودة.

💰 التكلفة والعمل المحلي

أداة CLI مجانية ومفتوحة المصدر بترخيص MPL-2.0 ولا تحتاج اشتراكًا أو API مدفوعًا لإنتاج الرسوم محليًا. لا يعني ذلك أن كل خدمة أو خط أو صورة تستخدمها مجانية أو مفتوحة المصدر.

تنص الأسئلة الشائعة على أن D2 لا يجمع telemetry، وأن اتصاله بعد التثبيت يقتصر افتراضيًا على فحص دوري لتحديثات GitHub. لكن المصدر قد يشير إلى صور أو أيقونات مستضافة؛ عندها يلزم جلبها من الشبكة. استخدم أصولًا محلية إذا كانت السرية أو البناء القابل للتكرار يتطلبان ذلك.

🔐 الخصوصية والصلاحيات والأمان

D2 يعمل بصلاحيات المستخدم الذي يشغله: يقرأ ملفات .d2 المستوردة، ويكتب ملفات الإخراج، وقد يجلب موارد بعيدة أو يفحص التحديثات. الاستيراد يدعم مسارات نسبية ومطلقة لملفات D2؛ لذلك لا تشغّل مصدرًا غير موثوق داخل مجلد يحوي ملفات حساسة قبل مراجعته وتقييد بيئة التنفيذ. العزل بحاوية أو حساب محدود مناسب في CI للمحتوى غير الموثوق.

راجع الروابط والموارد المضمّنة قبل نشر SVG أو PDF، ولا تضع أسرارًا أو عناوين داخلية في رسم سيصبح عامًا. خادم --watch مخصص للمعاينة المحلية افتراضيًا، وليس منصة تعاون آمنة. وترخيص MPL-2.0 يحدد التزامات التوزيع للملفات المرخصة؛ راجع مستشارك إن كنت تعيد توزيع نسخة معدلة ضمن منتج تجاري.

ملفات D2 المحلية والاستيرادات والموارد البعيدة وحدود الصلاحيات حول عملية التوليد
ملفات D2 المحلية والاستيرادات والموارد البعيدة وحدود الصلاحيات حول عملية التوليد

⚠️ الحدود ومتى لا تستخدمه

  • التخطيط التلقائي يوفر الوقت لكنه لا يمنح تحكمًا حرًا كاملًا في موضع كل عنصر.
  • الرسم الكبير جدًا قد يحتاج تقسيمًا إلى طبقات أو لوحات أصغر ليبقى مقروءًا.
  • تصدير ASCII تجريبي وأقل تعبيرًا من الصيغ الرسومية.
  • وجود ملف ناتج لا يساوي نجاح الأمر؛ افحص رمز الخروج والسجل.
  • الخطوط والنصوص والروابط قد تظهر بصورة مختلفة بين الصيغ، لذلك يلزم فحص بصري.
  • لا توجد مزامنة حسابات أو تعليقات مراجعة مدمجة في CLI؛ يعتمد التعاون على Git وأدوات الفريق.
  • لم نتحقق من دعم واجهة عربية رسمية. الرسوم العربية في هذه البطاقة شرح أصلي وليست دليلًا على تعريب المنتج.

📚 المصادر وتاريخ التحقق

تم التحقق في 30 أكتوبر 2026 بالرجوع إلى المصادر الأصلية:

للمقارنة، راجعنا Ruff من مجال جودة Python عبر مستودعه ووثائقه الرسمية؛ آخر إصدار ظاهر وقت البحث كان 0.17.3 بتاريخ 26 أكتوبر 2026. اخترنا D2 لأنه يضيف مجال التوثيق والرسوم ككود بعد بطاقة أتمتة، بينما تتقاطع Ruff أكثر مع أدوات الجودة المنشورة حديثًا ومع منظومة Astral التي ظهرت سابقًا في الدليل. كما استخدمنا GitHub Topics/Trending وفهارس claudeskills.info وdshmarket.com للاكتشاف فقط، ولم ننقل منها حقائق المنتج بدل المصدر الأصلي.

نطاق التحقق: قراءة المستودع والوثائق وصفحات الإصدار وفحص الصور التوضيحية. لم نثبت D2، ولم ننفذ الأمثلة، ولم نجر اختبار أداء أو تدقيقًا أمنيًا مستقلًا.