𝗗𝗗𝗗 𝗹𝗮 𝘆𝗮𝗺𝘂𝘁. 𝗕𝗹 𝘆𝗮𝗺𝘂𝘁 𝗮𝗹-𝗖𝗮𝗿𝗴𝗼-𝗖𝘂𝗹𝘁 𝗗𝗗𝗗.

التصميم الموجه بالمجال (Domain-Driven Design - DDD) لا يموت.

القيمة الجوهرية لـ DDD أصبحت أكثر أهمية الآن بسبب الذكاء الاصطناعي. لا تزال بحاجة إلى:

  • فهم مجالات الأعمال المعقدة
  • تحديد السياقات المحدودة (bounded contexts)
  • توحيد اللغة بين المهندسين والخبراء
  • اكتشاف الثوابت (invariants)
  • جعل انتقالات الحالة (state transitions) صريحة

الذكاء الاصطناعي يجعل توليد الكود رخيصاً. وهذا يجعل التفكير غير الواضح أكثر خطورة. إذا كان منطق المجال (domain logic) لديك فوضوياً، فإن الذكاء الاصطناعي سيساعدك فقط على إنشاء الفوضى بشكل أسرع.

المشكلة ليست في DDD. المشكلة هي الـ Cargo-Cult DDD (التقليد الأعمى لـ DDD).

تستخدم العديد من الفرق الـ DDD التكتيكي كأداة للتحكم بدلاً من الفهم. إنهم يتبعون الأنماط لمجرد اتباعها:

  • إنشاء Entity
  • إضافة Repository
  • كتابة Mapper
  • اتباع هيكل المجلدات

هذه الأنماط ليست سيئة، لكنها غالباً ما تتحول إلى مجرد أوراق عمل معمارية. إذا كان الـ Repository مجرد DAO تم تغيير اسمه، أو كان الـ Mapper يقوم فقط بنقل الحقول دون معنى، فأنت لا تقوم بنمذجة مجال (domain)، بل تقوم فقط بملء النماذج.

هذه هي البيروقراطية في صورة معمارية.

الذكاء الاصطناعي مثالي لهذا النوع من العمل؛ إذ يمكنه توليد الـ mappers والـ DTOs والـ boilerplate في ثوانٍ معدودة.

إذا استخدمت الذكاء الاصطناعي لتسريع البيروقراطية، فأنت تسرع الطقوس الشكلية (ceremony) فقط. قد ترى المزيد من التذاكر (tickets) تتحرك، لكنك لا تبني أنظمة أفضل، بل تجعل إنتاج الهدر أرخص فقط.

المنافسة الحقيقية هي بين نوعين من المؤسسات:

  1. الفرق البيروقراطية الكبيرة المدعومة بالذكاء الاصطناعي تستخدم هذه الفرق الذكاء الاصطناعي لتوليد المزيد من الطبقات والمزيد من الـ boilerplate. ويركزون على اتباع الأنماط الحالية واجتياز المراجعات الرسمية.

  2. الفرق الصغيرة ذات المسؤولية العالية والمعززة بالذكاء الاصطناعي تستخدم هذه الفرق الذكاء الاصطناعي لزيادة قدرتها على تغيير الأنظمة بأمان. ويركزون على:

  • المواصفات القابلة للتنفيذ (executable specifications)
  • حدود قوية (strong boundaries)
  • الاختبارات المؤتمتة (automated tests)
  • قيود على مستوى النوع (type-level constraints)
  • انتقالات حالة صريحة (explicit state transitions)

النوع الأول يستخدم الذكاء الاصطناعي لإنتاج المزيد من الطقوس الشكلية. أما النوع الثاني فيستخدم الذكاء الاصطناعي لإزالة الحاجة إلى هذه الطقوس.

توقف عن استخدام المعمارية للتحكم في الأشخاص أو الكود. استخدمها لحماية معنى المجال (domain meaning).

انتقل من المعمارية المحمية بالمراجعة البشرية إلى المعمارية المحمية بالاختبارات، والأنواع (types)، والقيود (constraints).

المصدر: https://dev.to/terum/ddd-is-not-dying-cargo-cult-ddd-is-l1p

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi