1 مستودع
Dynamic programming patterns where transitions between states are governed by a state machine.
Distinct from Dynamic Programming: Specifically uses state machine transitions for DP, unlike general recursive decomposition.
Explore 1 awesome GitHub repository matching software engineering & architecture · State Machine. Refine with filters or upvote what's useful.
توفر هذه المكتبة إطار عمل لتعريف آلات الحالة المحدودة (finite state machines) داخل فئات Ruby لإدارة دورات حياة الكائنات المعقدة. تعمل كمحرك سير عمل تصريحي، مما يسمح للمطورين بنمذجة حالات الكائنات، والأحداث، والانتقالات من خلال لغة خاصة بالمجال (DSL) سهلة القراءة. من خلال التكامل المباشر مع طبقات استمرارية قاعدة البيانات، يضمن إطار العمل مزامنة تغييرات الحالة مع سجلات التخزين مع الحفاظ على سلامة البيانات من خلال إدارة المعاملات وقفل الصفوف. تتميز المكتبة بفرض قواعد عمل صارمة من خلال حراس الانتقال المشروط ومنع التعديل المباشر للحالة، مما يضمن حدوث جميع تغييرات دورة الحياة حصرياً من خلال أحداث محددة. وهي تدعم آلات حالة متعددة ومستقلة داخل فئة واحدة عن طريق تعيينها لحقول قاعدة بيانات متميزة، مما يوفر تحكماً معزولاً في دورة الحياة. علاوة على ذلك، تقوم تلقائياً بإنشاء طرق مثيل ديناميكية للاستعلام عن الحالات وتشغيل الأحداث، إلى جانب نطاقات استعلام قاعدة البيانات التي تبسط تصفية الكائنات بناءً على حالتها الحالية. بعيداً عن إدارة دورة الحياة الأساسية، تتضمن المكتبة أدوات لتعريب أسماء الحالات لدعم الواجهات متعددة اللغات وتوفر خطافات (hooks) لتنفيذ منطق مخصص قبل أو بعد الانتقالات. كما تقدم أدوات مطابقة اختبار متخصصة للتحقق من تكوينات آلة الحالة ومنطق الانتقال داخل مجموعات الاختبار الآلية. يتضمن المشروع أدوات لتجميع الكود المصدري والتكوينات في توثيق منظم للمساعدة في مرجع النظام.
Supports hosting multiple independent state machines within a single class by mapping them to distinct database fields.