هذه الأداة مفتوحة المصدر تجعل Claude ينشئ مخططات معمارية

BBetter Stack
Computing/Software

Transcript

00:00:00اطلب من وكلاء البرمجة رسم خريطة لمستودع، والآن لدينا كافكا، أو رديس، أو بوابة واجهة برمجة تطبيقات غير موجودة أصلاً.
00:00:07غالبًا ما تبدو المخططات جيدة، لكنها تفوت الكثير.
00:00:10هذه هي أدوات Archify، حيث لا يقوم الوكيل برسم أي شيء.
00:00:14فهو يخرج رسمًا بيانيًا مصنفاً، وتتحقق Archify منه، ثم تقم بعرض المخطط.
00:00:19قد يكون هذا أحد أفضل الطرق لتصور بنيتنا التحتية.
00:00:23نحن على وشك معرفة ذلك.
00:00:30الآن، ربما لا ينبغي لنا نموذجنا أن يرسم المخطط على الإطلاق.
00:00:33طريقة عمل Archify هي أنها تصف النظام كنص JSON منظم ومصنف.
00:00:37يتم التحقق من صحة ذلك، وعندها فقط يقوم مترجم محلي بتحويله إلى ملف HTML النهائي.
00:00:42إذا كان الرسم البياني غير صالح، فسوف يفشل.
00:00:45تلك هي Archify، وقد حصدت 44,000 نجمة في غضون بضعة أشهر فقط لأنها تتصل مباشرة بـ Cloud Code و Cursor و Codex.
00:00:53لذا أود وضع هذا موضع الاختبار.
00:00:54سأقوم بتثبيت Archify، وتوجيهها إلى مستودع، وجعلها تجيب على سؤال واحد حول البنية.
00:01:00ثم سنرى ما إذا كان بإمكاننا حتى استخدام هذه النتيجة في طلب سحب (PR).
00:01:03وهناك حالات استخدام قليلة لن أستخدم فيها هذه الأداة قطعيًا، لكننا سنغوص فيها قريبًا.
00:01:08إذا كنت تستمتع بأدوات البرمجة التي تسّرع سير عملك، فتأكد من الاشتراك.
00:01:11لدينا مقاطع فيديو تصدر طوال الوقت.
00:01:13حسناً، إذن التثبيت عبارة عن أمر واحد هنا.
00:01:17وهذا ليس تطبيقًا أقوم بإعداده.
00:01:19إنه في الواقع مهارة وكيل.
00:01:22بعد تثبيته، يمكنني استخدام نفس المهارة من Cloud Code أو أي من الأدوات الأخرى التي ذكرتها سابقًا
00:01:28دون الحاجة إلى تغيير المحررات أو حتى سير عملي.
00:01:32الآن يمكنني إرسال مهمة حقيقية إليه.
00:01:34لن أطلب منه رسم بنية هذا المستودع.
00:01:37يبدو ذلك جيدًا.
00:01:39ولكن فيครับ النهاية، سيؤدي ذلك فقط إلى إرجاع مجموعة من البيانات غير الهامة إلينا.
00:01:42لذا سأطرح سؤالاً واحداً قوياً.
00:01:45استخدم Archify، مخطط بنية من 8 إلى 12 عقدة كحد أقصى.
00:01:49ماذا يحدث عند فقدان ذاكرة التخزين المؤقت في هذه الخدمة؟
00:01:52قم تضمين المربعات الموجودة في هذا المستودع فقط.
00:01:54إذا لم تتمكن من إثبات وجود مكون ما، فاحذفه.
00:01:58قدّم ملف HTML مكتفياً بذاته.
00:02:00هذا يشبه خطة واحدة، سؤال واحد.
00:02:02حوالي 8 إلى 12 عقدة.
00:02:04لأننا إذا طلبنا من الوكيل رسم خريطة لقاعدة الكود بالكامل، فهل قمنا بتبسيط أي شيء أم
00:02:08جعلناها فقط أكثر صعوبة في الفهم؟
00:02:10الآن لقد قمت للتو بتحويل شجرة مستودعي إلى مخطط انسيابي.
00:02:14يكتب الوكيل البنية المعمارية على شكل JSON.
00:02:16ثم تتحقق Archify من صحتها.
00:02:18يمكنني أيضًا تشغيل هذا التحقق من الصحة مباشرة كما سأفعل هنا.
00:02:23هذه في الواقع ميزة رائعة جدًا وجدتها هنا.
00:02:27يمكن أن تتضمن العقد أيضًا أدلة من المستودع مرتبطة بالتزام ونطاق أسطر معين.
00:02:32إذا لم يكن هذا الإثبات موجودًا، فلا تحصل العقدة على شارة المصدر (SRC) لمجرد أن العقدة تبدو
00:02:37قوية في الإجابة.
00:02:39حسناً.
00:02:39الآن، كيف يساعد هذا حقاً؟
00:02:41يبدو هذا وكأنه مخطط بنية معمارية.
00:02:43نعم، بالتأكيد، ولكن لا يتعين عليك استخدامه كمخطط عادي.
00:02:46يمكنني البحث عن خدمة فعلية ضمن هذا المخطط.
00:02:50يمكنني النقر فوقه ومعرفة ما هو متصل صعوداً وهبوطاً فوراً.
00:02:55ثم يمكنني تشغيل هذا المسار وتتبع مسار فقدان ذاكرة التخزين المؤقت عبر النظام.
00:02:59لذا، بدلاً من التحديق في 10 أسهم ومحاولة تتبعها عقلياً، يمكنني الآن المرور عبرها
00:03:05خطوة بخطوة.
00:03:06وعلاوة على القيام بذلك، يمكنني تصديره.
00:03:08يمكنني نسخ ملف PNG أو إنشاء بطاقة مشاركة بأبعاد 1200 في 36.
00:03:13الفرق الحقيقي هنا هو مخططات ميرميد (Mermaid)، أليس كذلك؟
00:03:17أداة ميرميد هي عادة شيْ أقرؤه فحسب.
00:03:20هذا شيء يمكنني طرح الأسئلة عليه وضده.
00:03:23ولا يُستخدم التحريك لإخفاء الهيكل السيء، بل تصدير المخطط كصورة ثابتة
00:03:28لتظل المعنى موجودًا وقائماً.
00:03:31وهناك حالة استخدام ثانية قد تكون أكثر فائدة في الواقع، أليس كذلك؟
00:03:35ماذا تفكر؟
00:03:36حسناً، أنا أفكر في مراجعة الكود.
00:03:38فلتفترض أن هذا هو النظام قبل إجراء أي تغيير.
00:03:41ثم أقوم بإضافة عامل إعادة محاولة موجود.
00:03:44يمكنني إخبار الوكيل بتحديث البنية المعمارية دون اختلاق أشياء من العدم.
00:03:49يمكن لـ Archify بعد ذلك مقارنة اللقطتين المتحققتين: المضاف، المحذوف، المنقول، والمعاد توجيهه.
00:03:54إذن، بدلاً من الحصول على مخططين مولدين، يمكنني أن أرى ما تغير فعلياً.
00:03:59والمحرر لا يزال مجرد محادثة.
00:04:02ولكن إذا كنت أريد لهذه البنية أن تستمر في جلسة الوكيل التالية، فإني أقوم بعمل Commit لملف JSON.
00:04:07في هذه المرحلة من اللعبة، أسهل طريقة لفهم Archify هي كالتالي.
00:04:11بالنسبة لجهاز الافتراضي HTML الخاص بخرائط النظام، فإن وكيل البرمجة هو الواجهة الأمامية.
00:04:15وملف JSON هو التمثيل الوسيط.
00:04:19وملف HTML هو النتيجة المترجمة.
00:04:21وتلك الطبقة المتوسطة تقوم بالكثير من العمل.
00:04:24يتبع ملف JSON مخططات صارمة.
00:04:26الحقول غير المعروفة يمكن أن تفشل في التحقق من الصحة.
00:04:28وهناك خمسة أنماط للمخططات.
00:04:30البنية، سير العمل، التسلسل، تدفق البيانات، ودورة الحياة.
00:04:34ولكن أحد أكثر القرارات إثارة للاهتمام هو ما لا يتحكم فيه النموذج.
00:04:38التخطيط.
00:04:39يصف النموذج النظام.
00:04:41فهو لا يحدد بدقة المكان الذي سيذهب إليه كل مربع.
00:04:44لقد حاولوا بالفعل استخدام ميرميد المخصص مع تخطيط الدرجات التلقائي.
00:04:48لم يكن أفضل بأي حال من الأحوال من ميرميد العادي.
00:04:51كما أن عملية التحقق تفشل عند الإغلاق (fail closed).
00:04:54ملف JSON السيء لا يتحول إلى مخطط جميل بأي شكل من الأشكال.
00:04:58تحصل على تشخيصات، ورموز قواعد، وإصلاحات مدعومة.
00:05:02الآن، من كل هذا، إليك ربما المكان الذي لن أستخدم فيه Archify.
00:05:06إذا كنت بحاجة إلى مخطط مباشرة داخل ملف التمهيدي (README) الخاص بك، فربما لا.
00:05:10قد يستغرق الأمر بعض الوقت.
00:05:11GitHub يعرضه.
00:05:12وملف HTML الخاص بـ Archify لا يفعل ذلك.
00:05:15تحل Archify نوعًا مختلفًا تمامًا من المشاكل هنا.
00:05:18هناك بالفعل وكيل قيد التشغيل.
00:05:20هذا الوكيل ينتج منتجاً معمارياً.
00:05:23ربما يذهب إلى طلب سحب (PR).
00:05:25ربما يذهب إلى مراجعة التصميم.
00:05:27هناك يبدأ الناتج المدقق في اكتساب الأهمية.
00:05:30الآن، ضمن هذا، هناك الكثير مما أعجبني هنا.
00:05:32فهو يعيش داخل الأدوات التي نستخدمها بالفعل كل يوم.
00:05:35يمكنني إرسال الناتج إلى الخارج.
00:05:38تمنحني أدلة المستودع شيئًا ملموسًا للتحقق منه بالفعل.
00:05:41ونظرًا لأن البنية منظمة، يمكنني الاستمرار في تعديلها دون أن تتغير الأشياء عشوائياً بمرور الوقت.
00:05:46كما أنها تبدو جيدة لدرجة أنني ربما لن أشعر بالحاجة إلى إعادة رسمها في Figma أو أي أداة أخرى مماثلة.
00:05:53ولكن كل هذا يقال، في نفس الوقت، Archify لا تعرف بنيتك المعمارية.
00:05:58يمكن أن يكون الرسم البياني صحيحًا تمامًا ومع ذلك يصف النظام الخطأ.
00:06:02لا يزال يتعين عليك قراءته.
00:06:03النموذج السيئ، كما نعلم، غالباً ما ينشئ فقط JSON يعمل، لكنه لا يزال سيئ المظهر.
00:06:08وإذا كانت الوجهة النهائية لمخططك هي ملف التمهيدي (README)، فقد تكون أداة ميرميد أفضل هنا.
00:06:13مع Archify، ربما تقوم بعمل Commit لملف JSON و HTML أو تقوم بتصدير صورة.
00:06:18وهناك خطأ واحد تجنبه بالتأكيد هنا.
00:06:21لا توجهه إلى مستودع ضخم وتطلب منه: ارسم خريطة لكل شيء.
00:06:25أعتقد أنه يمكنك تخمين كيف سيسير الأمر لأنك ستستعيد على الأرجح حمولة من البيانات غير الهامة.
00:06:29ولكن هذا ليس في الواقع فشلاً لـ Archify.
00:06:32بل هو بالأحرى سؤال سيء.
00:06:34إذا كنت تعمل بالفعل مع وكلاء البرمجة وتقوم بانتظام بإنشاء مخططات ستنظر إليها في المستقبل أو قد ينظر إليها شخص آخر، فهذا منطقي.
00:06:42مراجعات طلبات السحب (PRs)، وثائق التصميم، ربما سأستخدم هذه الأداة.
00:06:47لن أقوم بتثبيت هذا لأني أريد نسخة أجمل لشيء نمتلكه بالفعل، مثل ميرميد على سبيل المثال.
00:06:52وبالتأكيد لن أتوقع منه هندسة عكسية لأي شيء نيابة عني.
00:06:55عقبة التجربة صغيرة حقًا.
00:06:58أمر MPX واحد، ونود (Node) على الجهاز.
00:07:00لا توجد أوزان نماذج هنا.
00:07:02جهاز M4 Pro الخاص بي غير مهم أساسًا في هذا.
00:07:05ولكن هناك قاعدة واحدة أود الالتزام بها.
00:07:07سؤال واحد لكل ملف.
00:07:08إذا لم تتمكن من تحديد السؤال الذي يجيب عليه المخطط بوضوح، فلا تقم بتوليد المخطط.
00:07:14أنا جوش من BetterStack.
00:07:15إذا كنت تستمتع بنصائح وحيل البرمجة مثل هذه، فتأكد من الاشتراك في القناة.
00:07:19سنراكم في فيديو آخر.
00:07:20سنراكم في فيديو آخر.

Key Takeaway

تتيح أداة Archify لوكلاء البرمجة إنشاء مخططات بنية معمارية موثقة ومتحقق منها بدقة عبر نصوص JSON وملفات HTML بدلاً من الرسومات العشوائية.

Highlights

  • تعتمد أداة Archify على وصف النظام كنص JSON منظم يتم التحقق من صحته، ثم يترجمه محلياً إلى ملف HTML.

  • تتصل Archify مباشرة بأدوات مثل Cloud Code و Cursor و Codex كمهارة وكيل تتطلب أمر تثبيت واحد.

  • تحتوي العقد في المخطط على أدلة من المستودع مرتبطة بالتزام ونطاق أسطر معين للحصول على شارة المصدر.

  • توفر Archify خمسة أنماط للمخططات تشمل البنية، وسير العمل، والتسلسل، وتدفق البيانات، ودورة الحياة.

  • تفشل عملية التحقق في Archify عند حدوث خطأ في هيكل JSON لضمان عدم توليد مخططات غير دقيقة.

Timeline

آلية عمل أداة Archify

  • تتجنب Archify الرسم العشوائي عبر الاعتماد على وصف النظام بنص JSON مصنف يتم التحقق منه قبل التحويل.
  • تتصل الأداة بمحررات مثل Cloud Code و Cursor عبر مهارة وكيل تتثبت بأمر واحد.
  • تُطرح الأسئلة المحددة للحصول على مخططات تتراوح بين 8 إلى 12 عقدة لتفادي إغراق المستخدم بالبيانات.

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

مميزات التفاعل وتتبع المسارات

  • ترتبط العقد بأدلة من المستودع تشمل التزامات ونطاقات أسطر محددة للحصول على شارة المصدر.
  • يسمح المخطط بالنقر فوق الخدمات لتتبع مسارات الأعطال صعوداً وهبوطاً خطوة بخطوة.
  • يمكن تصدير النتيجة كملف PNG أو بطاقة مشاركة بأبعاد محددة.

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

مقارنة النسخ والأنماط الهيكلية

  • تقارن Archify بين لقطتين للبنية المعمارية لتحديد العناصر المضافة والمحذوفة بدقة.
  • تعتمد الأداة على خمسة أنماط للمخططات تشمل البنية وسير العمل والتسلسل وتدفق البيانات ودورة الحياة.
  • تخضع ملفات JSON لمخططات صارمة تفشل في حال وجود حقول غير معروفة.

تتيح الأداة مراجعة الكود بمقارنة حالة النظام قبل وبعد التغييرات لمعرفة التعديلات الفعلية. تفرض Archify معايير صارمة ترفض ملفات JSON غير الصحيحة تماماً لمنع عرض مخططات مضللة، مع تركيز الجهد على المحتوى بدلاً من التخطيط العشوائي.

قيود الاستخدام وحالات عدم التطبيق

  • تفتقر ملفات HTML الخاصة بـ Archify للعرض المباشر داخل ملفات README الخاصة بـ GitHub.
  • يؤدي توجيه الأداة إلى مستودعات ضخمة بطلب عشوائي إلى استرجاع حمولة من البيانات غير الهامة.
  • تتطلب الأداة سؤالاً واضحاً ومحدداً لكل ملف لتجنب توليد معلومات غير مفيدة.

لا تصلح Archify للوضع المباشر داخل ملفات README على عكس أدوات مثل Mermaid، كما أن توجيهها لمستودعات ضخمة دون سؤال محدد يؤدي إلى نتائج غير مفيدة. تتطلب الاستفادة المثلى من الأداة تحديد سؤال دقيق لكل ملف وتوظيفها بفعالية في طلبات السحب ومراجعات التصميم.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video