GH GambleHub

السياق المحدود وحدود المجال

السياق المحدود (Bounded Context) هو حدود واضحة تعمل فيها لغة واحدة في كل مكان ونماذج متسقة وثوابت. داخل الحدود، المصطلحات لا لبس فيها («الرهان»، «العميل»، «الحد»)، وخارج السياق تتواصل مع العقود (الأحداث/الفرق) ولا تسحب ذيول الآخرين الدلالية. "تقلل الحدود المختارة بذكاء من الاتصال وتبسيط التوسع وتسريع تطور المنتج.

1) لماذا نحتاج إلى حدود

تقليل الحمل المعرفي. يعمل الفريق بنموذج واحد ولغة واحدة، وليس «العمل بأكمله في وقت واحد».
عزل الثوابت. تعيش القواعد الحرجة (التوازن ≥ 0، تفرد تسجيل الدخول) في مكان واحد وتحميها المجاميع.
إدارة التغيير. تطور المخطط/القواعد داخل كولومبيا البريطانية لا يكسر الجار - هناك عقود صريحة.
الأداء والموثوقية. وفي إطار استمرارية تصريف الأعمال، يمكن اختيار نموذج تناسق مناسب وتخزين مناسب ؛ في الخارج - إسقاطات غير متزامنة.

2) كيفية تحديد السياق المحدود

طريقة سريعة (ورشة عمل 2-4 ساعات):

1. اقتحام الحدث: اكتب أحداث المجال «ما حدث»، ثم الأوامر «ماذا تطلب أن تفعل»، ثم المجاميع «التي تضمن القاعدة».

2. مجموعات اللغات: حيث تتطابق الكلمات والقواعد باستمرار - احتمال قبل الميلاد. حيث تعني كلمة «عميل» مختلفة (دافع مقابل لاعب) - من الواضح أن هناك سياقات مختلفة.

3. الثوابت والملكية: ما الذي لا يمكن انتهاكه ومن المسؤول ؟ الثابت → داخل BC الذي يمكن أن يضمن ذلك.

4. تدفق القيمة: خطوات المجموعة التي غالبًا ما تتغير معًا - هؤلاء مرشحون لواحد قبل الميلاد.

5. هيكل Org: إذا تم إنشاء جزء واحد بواسطة فريق منفصل بمؤشرات أداء رئيسية منفصلة - فمن المحتمل أن يكون هذا هو BC منفصل (ولكن ليس العكس: يجب ألا يملي الهيكل التنظيمي النموذج بشكل أعمى).

إشارات الحدود:
  • الخلاف حول المصطلحات («الرهان»، «التذكرة»، «الجولة» - معاني مختلفة).
  • يتدفق «الثابت» الأكثر سخونة عبر الخدمات.
  • المنظمات غير الحكومية المختلفة ووتيرة التغيير.
  • «ثنائي الكتابة» بين الوحدات من أجل الذرة.

3) السياقات النموذجية (مثال المجال)

الهوية/KYC - التسجيل، مستويات التحقق، حالات التقييد.
المحفظة/دفتر الأستاذ - الأرصدة والمعاملات والاحتياطيات والعملات.
الرهان/الأوامر - الاستقبال والاقتباسات والحساب.
اللعبة/الجولة - دورة الحياة المستديرة، النتائج.
المكافأة/العرض الترويجي - الاستحقاقات، والتبديل، والتحويل.
المدفوعات - الودائع/عمليات السحب، أوضاع بوابة الدفع.
الامتثال/الإبلاغ - التقارير ومراجعة الحسابات والمعارض التنظيمية.
Catalog/Provider Integration - games, versions, status of providers.
التحليلات/نماذج القراءة - الإسقاطات والآراء المجسدة.

💡 هذه ليست خدمات صغيرة من فئة واحدة. واحد قبل الميلاد يمكن أن يكون خدمة واحدة أو وحدة متراصة مع واجهة واضحة.

4) خريطة السياق: كيفية تفاعل BCs

خريطة السياق تلتقط نوع العلاقة:
  • مورد العملاء. يقدم أحد الموردين (BC) الأحداث/البيانات، ويقوم الآخر (العميل) بتعديل نماذجه.
  • مطابقة. يقبل العميل لغة المورّد ونموذجه كما هما (مثلاً) دفتر الأستاذ التنظيمي).
  • الشراكة. تتطور اللغة والعقود بشكل متزامن من قبلتين قبل الميلاد (غالبًا أمر واحد/خارطة طريق).
  • النواة المشتركة. الحد الأدنى الشائع من اللوازم/المكتبة، يتم تحريرها بشكل مشترك ؛ تستخدم بعناية.
  • طبقة مكافحة الفساد (ACL). طبقة واقية تترجم نماذج الآخرين إلى لغتهم الخاصة.
  • Open Host Service/Published Language. البروتوكولات/المخططات العامة، تم تحريرها وتوثيقها.

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

5) مربوط = لغة + نموذج + ثوابت + تخزين

داخل كولومبيا البريطانية، حدد:
  • اللغة في كل مكان. قاموس المصطلحات مع الأمثلة.
  • المجاميع والثوابت. من «يحمل» القواعد وما هي العمليات المسموح بها.
  • نموذج الاتساق. قوي/CP للنقود، EC/سببي لواجهات المتاجر.
  • التخزين والفهارس. اختير للثوابت و SLO.
  • عقود الخروج. الأحداث/الأوامر، إصدارات المخطط، تسليم SLOs.

في الخارج: لا توجد اعتمادات مباشرة على SQL/table. الاتصال - من خلال عقد.

6) الحدود والاتساق (PACELC)

داخل كولومبيا البريطانية: اختر نموذجًا للثوابت (محفظة - قوية، رهان - قوية في حفل الاستقبال).
بين كولومبيا البريطانية: غالبًا ما يكون ذلك من خلال الأحداث والإسقاطات. إذا كانت هناك حاجة إلى التحقق المتزامن، فأمر صريح بموعد نهائي وفشل عندما لا يكون متاحًا (وليس مكالمة REST «خفية»).

7) طبقة مكافحة الفساد (ACL)

تتمثل مهمة الرباط الصليبي الأمامي في عدم السماح للغة شخص آخر وبياناته القذرة داخل كولومبيا البريطانية.

رسم خرائط المخطط: 'PaymentStatus = SETTLED' → internal 'LedgerEntry (type = Credit, reason = PsPSettle)'.
التحقق والإثراء: التحقق من الثوابت، وتطبيع المناطق الزمنية، والعملات.
الإصدار: دعم العقد الخارجي لـ «schema _ version»، التوافق الخلفي.
الفراغ: بواسطة 'خارجي _ id '/' عملية _ id'.
إمكانية الرصد: «مصدر» العلامات النزرة، «مخطط _ إصدار»، «رسم الخرائط _ معرف»، DLQ للرسائل «السامة».

8) الحدود والبيانات: الملكية والإسقاطات وواجهة برمجة التطبيقات

الملكية: من يملك «الحقيقة» ؟ فقط المالك يغير السجل. بقية كولومبيا البريطانية - نماذج القراءة والروابط.
الإسقاطات: جداول غير طبيعية للقراءات ؛ من الأحداث.
واجهة برمجة التطبيقات: الأوامر (تتحور في المالك) والطلبات (اقرأ الإسقاطات). لا توجد تحديثات «شاملة» لبيانات الآخرين.

9) التطور والنسخ

الأحداث وواجهات برمجة التطبيقات - مع «نسخة شيما» وسياسة التوافق (إضافة + احتياطي).
Blue/Green by BC: يتم نشر العقد الجديد 'v2' بالتوازي مع 'v1'، ويتم نقل حركة المرور تدريجياً.
الهجرات: للتغييرات الرئيسية - إسقاط/خدمة جديدة، «تبديل للقراءات على مرحلتين».

10) اختبار الحدود

اختبارات العقد: التحقق من امتثال BC للعقد المنشور (اختبارات المنتج) وفهم شخص آخر بشكل صحيح (اختبارات المستهلك).
على أساس الملكية: ثوابت المجاميع داخل كولومبيا البريطانية (التوازن والحدود والتفرد).
الفوضى المتعلقة بالتكامل: التأخير، والخروج عن النظام، والتكرار، والتخطيط - التطور ؛ وجود DLQ وإعادة الصياغة الآمنة.
اختبارات NFR: p95/ذروة الحمل على الحدود (خادم الحدث/ACL).

11) إمكانية الرصد و SLO حسب الحدود

المقاييس: إنتاجية الأحداث/الأوامر، "الإسقاط _ lag _ ms'،" dlq _ rate "، خريطة الأخطاء، p95 API.
التعقب: العلامات الإلزامية 'bc'، 'المستأجر _ id'، 'event _ id'، 'operation _ id'، 'schema _ version'.
التنبيهات: تجاوز تأخر الإسقاط، وزيادة فشل الأمر، و «رفرف» المخطط (العديد من «المخطط _ عدم التطابق»).

12) متعدد المستأجرين والمناطق

«مستأجر _ هوية» - في مفاتيح جميع الأحداث والتوقعات على الحدود.
الإنصاف: حدود النشر/إعادة الرسم لكل مستأجر للحفاظ على «الضجيج» من تعطيل SLOs للجيران.
الإقامة: تعيش بيانات كولومبيا البريطانية في منطقة «منزل» ؛ عبر الأقاليم - المجاميع/التقارير.

13) الأنماط المضادة (مما يؤدي إلى عدم وضوح الحدود)

عملاق "الخدمة الأساسية. "كل شيء في مكان واحد → الصراع من أجل المعاملات، والإصدارات الطويلة، والاستقلالية المنخفضة.
التكامل الجدولي. حدد الخطوط إلى الجداول الأجنبية → الهشاشة والاقتران وفقًا للمخطط.
ثنائي الكتابة. في الوقت نفسه، الكتابة في اثنين من قبل الميلاد «للراحة» → التناقضات وتخريب الثوابت.
مطابقة افتراضياً. «قبلت نموذج شخص آخر كما هو» → تسريب معاني الآخرين، واستحالة التطور.
مكالمات متزامنة مخفية. اتصل REST «في مكان ما بالداخل» دون عقد صريح وموعد نهائي → اعتماد غير متوقع على التوافر.

14) مثال على الخطوط (مخطط شفهي)


[Wallet/Ledger] <--CP, Leader, Transactions-->
publishes: WalletReserved/Committed v
[Betting] <--CP on bid taking-->
events: BetPlaced/Settled v
[Read Models/Analytics] <--EC projection-->

[Payments] --ACL--> [Wallet/Ledger]
[Provider Integration] --ACL--> [Game/Round]
[Compliance] <-events - [KYC/Identity], -> reports [Reporting]

15) دليل مصغر لاختيار الحدود

1. صياغة الثوابت وتحديد من يمكنه ضمانها.
2. وصف القاموس (10-20 مصطلحًا) وتأكد من أن الفريق لديه نفس الفهم.
3. ارسم خريطة السياق وأنواع العلاقات.
4. حل نموذج الاتساق داخل وعند المفاصل.
5. عقود التصميم (الأحداث/الأوامر) و ACLs.
6. خطة للرصد (المقاييس/التعقب/التنبيهات) و DLQ/redrive.
7. إجراء اختبارات العقود والفوضى للتكامل.
8. إصلاح الحوكمة: من يمتلك اللغة/المخطط، كيف يتم إجراء التغييرات.

16) قائمة مرجعية قبل البيع

  • لكل قبل الميلاد مفردات ومجاميع وثوابت.
  • يتم تعريف العلاقات على خريطة السياق ويتم توثيق العقود.
  • التكامل من خلال الأحداث/الأوامر و ACLs، لا توجد تبعيات مباشرة لـ SQL.
  • خمول القيادة/الأحداث ؛ هناك صندوق خارجي/صندوق الوارد و DLQ.
  • نموذج الاتساق (داخل/داخل كولومبيا البريطانية) ثابت ومختبر.
  • استراتيجية تحرير المخطط والتوافق (v1/v2).
  • تم تشكيل مقاييس وتنبيهات التأخير/الخطأ/الأداء.
  • يتم إنفاذ سياسات الإيجار المتعدد والبيانات والإقامة.
  • كتب اللعب التشغيلية: توقعات مخطط عدم التطابق، إعادة التوسيع، إعادة البناء.

17) وصفات سريعة

المال والحدود: فصل BC مع CP والمعاملات، أوامر API فقط، الأحداث كنتيجة للحقيقة للقراءات.
الخلاصات/الدلائل: BC مع EC، الإسقاطات والمخبأ، صريح «النضارة».
التكامل مع مقدمي الخدمات الخارجيين: دائمًا من خلال ACLs والأحداث/الأوامر وإصدار المخطط.
نمو الفريق: فريق واحد قبل الميلاد هو فريق واحد، والفريق لديه «مالك لغة» و «حارس ثابت».
إعادة تشكيل مونوليث: العقود و ACLs أولاً، ثم الفصل المادي.

استنتاج

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

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.