هل كل شيء في نظامك يحتاج إلى ID؟
ليس بالضرورة.
في هذه الحلقة من سلسلة BuildFlow ننتقل من كتابة الكود إلى التفكير في القرار المعماري وراء الكود.
سنكتشف لماذا لا ينبغي أن تحصل كل المفاهيم في الـ Domain على Identity، وكيف يمكن لـ Value Objects أن تمثل المفاهيم التي تعيش بقيمها بدلًا من هويتها.
وسنناقش أيضًا مشكلة مهمة في تصميم الأنظمة الكبيرة:
كيف نمثل Auditing بدون أن نفرض Base Class جديدة على الـ Entities؟
لماذا نستخدم Interfaces كـ Contracts بدلًا من Base Classes؟
لماذا نحتاج إلى UTC وGuid في عقد الـ Auditing؟
كيف يمكن لـ Infrastructure أن يتعرف تلقائيًا على هذه الـ Contracts ويطبقها؟
لماذا نستخدم Soft Delete بدل الحذف النهائي؟
وكيف يساعد EF Core Global Query Filter في تطبيق قاعدة Soft Delete تلقائيًا؟
ثم نصل إلى الجزء الأهم:
ما القواعد الهندسية التي يمكننا استخلاصها؟
Model values as Value Objects
Represent cross-cutting concerns as Contracts
Let Infrastructure automate them
______________________________________________________
BuildFlow-V3 — العرض الحي (Live Demo)
سجّل مستأجرك الخاص وتابع دورة حياة مستندات المشروع كاملةً: مسودة (Draft) ← قيد المراجعة (Under Review) ← معتمد (Approved) ← مؤرشف (Archived) (نظام SaaS متعدد المستأجرين مبني بـ .NET 8).
الرابط: https://build-flow-v3-orpin.vercel.app
BuildFlow-V3 — الكود المصدري (.NET 8)
الهيكلية الوحدوية (Modular Monolith)، التصميم القائم على النطاق (DDD)، نمط CQRS، تعدد المستأجرين (Multi-tenancy)، التخزين المؤقت باستخدام Redis، تتبع الأداء OpenTelemetry، مع 90 اختبار وحدوي (Unit Tests) وتكامل مستمر (CI) كامل.
مستودع جيت هاب: GitHub - luaay/BuildFlow-V3: Engineering Document Workflow SaaS — Modular Monolith, DDD, Clean Architecture, CQRS (.NET 8) · GitHub
واجهة توثيق API الحية (Swagger): GitHub - luaay/BuildFlow-V3: Engineering Document Workflow SaaS — Modular Monolith, DDD, Clean Architecture, CQRS (.NET 8) · GitHub
مستودع الشرح التعليمي خطوة بخطوة
الكود المصدري الكامل المرتبط خطوة بخطوة مع سلسلة فيديو يوتيوب.
الرابط: GitHub - luaay/BuildFlow-Tutorial · GitHub
سلسلة الفيديوهات الكاملة:
السلسلة بالعربية: https://www.youtube.com/watch?v=BtDY8nP7s-s&list=PLvQd5bL8gZSsOxYZfdleDcERevGIcvYbm
السلسلة بالإنجليزية: https://www.youtube.com/watch?v=FO4FBGiJ4L8&list=PLvQd5bL8gZSvASa69AODKURjOwHcvTjKz
_______________________________________
هذه الحلقة ليست مجرد إضافة بعض الـ Classes إلى SharedKernel، بل هي عن فصل المسؤوليات واتخاذ قرارات معمارية تجعل النظام أكثر وضوحًا وقابلية للتوسع والصيانة.
وفي نهاية الحلقة، نناقش أيضًا مجموعة من أسئلة مقابلات العمل حول Value Objects وHashing وInterfaces، وكيفية شرح القرار الهندسي، وليس مجرد حفظ المصطلحات.
في الحلقة القادمة:
سنأخذ هذه الـ Contracts من مستوى التصميم إلى مستوى التنفيذ، ونرى كيف يمكن لـ Infrastructure وEF Core تحويل هذه القرارات المعمارية إلى سلوك حقيقي داخل النظام.
التقنيات والمفاهيم
ASP.NET Core • .NET 8 • C# • DDD • Clean Architecture • Modular Monolith • SharedKernel • Value Objects • Auditing • Soft Delete • EF Core
سلسلة BuildFlow
إذا كنت تريد فهم لماذا نبني النظام بهذه الطريقة وليس فقط كيف نكتب الكود، فتابع سلسلة BuildFlow من البداية.
إذا وجدت الحلقة مفيدة، لا تنسَ الإعجاب بالفيديو والاشتراك في القناة ومشاركة الحلقة مع مطور قد يستفيد منها.
BuildFlow — Building Software by Engineering Decisions.