Xendor هو .NET Core Framework يمكن استخدامه لإنشاء تصميم بسيط ونظيف من خلال فرض مسؤولية واحدة وفصل المخاوف. تعتبر ميزاتها المتقدمة مثالية للتصميم الذي يحركه المجال (DDD) ، و segragation Quibilty Responsibilty (CQRS) ومصادر الأحداث. لدى Xendor أيضًا عمليات تكامل RabbitMQ.
الفصل بين مسؤولية ما يقضون الأمر هو نمط يخبرنا بفصل العمليات التي تحور البيانات عن تلك التي تستفسر عنها. إنه مشتق من فصل استعلام القيادة (CQS) CQS أنه يمكن أن يكون هناك نوعان فقط من الأساليب في الفصل: تلك التي تحور الحالة وتعيد باطلة وتلك التي تعيد الحالة ولكنها لا تغيرها.
CQRS هو نمط تطبق عليه؟ الدواخل؟ من خدمتك/تطبيقك ويمكنك تطبيقها فقط على جزء من خدمتك.
بدلاً من تخزين الوضع الحالي للبيانات في مجال ما ، استخدم متجرًا لإلحاح فقط لتسجيل سلسلة الإجراءات الكاملة التي اتخذت على تلك البيانات. يعمل المتجر كنظام للتسجيل ويمكن استخدامه لتحقيق كائنات المجال. هذا يمكن أن يبسط المهام في المجالات المعقدة ، من خلال تجنب الحاجة إلى مزامنة نموذج البيانات ومجال الأعمال ، مع تحسين الأداء وقابلية التوسع والاستجابة. يمكن أن يوفر أيضًا اتساقًا لبيانات المعاملات ، والحفاظ على مسارات التدقيق الكاملة والتاريخ الذي يمكن أن يمكّن إجراءات التعويض.
الإسقاط هو مفهوم مهم أثناء بناء أنظمة تركز على الحدث. في الوقت نفسه ، يكون الأمر بسيطًا للغاية.
الإسقاط يدور حول استخلاص الحالة الحالية من تيار الأحداث.
على سبيل المثال ، فكر في موقف ، حيث يتم نشر دفق من الأحداث بواسطة خادم لجميع المشتركين. ترتبط هذه الأحداث بتسجيلات المستخدم وتبدو مثل:
userAddedToAccount
{
"userId" : 55 ,
"username" : " alemol " ,
"name" : " Alejandro " ,
"lastName" : " Moline "
}userVerifiedEmail
{
"userId" : 55 ,
"email" : " [email protected] "
}userupdated
{
"userId" : 55 ,
"lastName" : " Molines "
}يمكننا إرفاق مشترك لدفق هذه الأحداث لإسقاط هذا الدفق في نموذج قراءة مستمر ، يستخدم لخدمة تفاصيل المستخدم في واجهة مستخدم الويب. يمكن أن يبدو نموذج القراءة النهائية مثل:
{
"userId" : 55 ,
"username" : " alemol " ,
"email" : " [email protected] " ,
"name" : " Alejandro " ,
"lastName" : " Molines "
}إذا كنت ترغب في ذلك أو كنت تستخدم هذا المشروع ، فيرجى إعطائه نجمة. شكرًا!
لا تتردد في إنشاء مشكلة على جيثب. المساهمات ، طلبات السحب أكثر من موضع ترحيب!
Xendor هو حقوق الطبع والنشر © 2019 Alejandro Molines وغيرهم من المساهمين بموجب ترخيص MIT.