Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

اصطلاحات التسمية

تحدد هذه الصفحة قواعد التسمية الداخلية التي تجعل مساحة العمل قابلة للتوقع للمساهمين.

الأهداف

  • تسهيل توقع مكان الشيفرة قبل فتح الملفات
  • توحيد أسماء الإضافات والمجموعات والحالات والمكوّنات بين الحزم
  • حجز ألفاظ التوافق للحالات التي تحافظ فعلًا على سلوك قديم

أسماء الوحدات

  • استخدم model لتمثيل نموذج البيانات المعرّف من طرف المستخدم أو الدوال النقية التي تتحقق منه وتطبّعه
  • استخدم runtime لعلامات ECS الداخلية، وتتبع الأبناء المُولّدين، والأنظمة التي تملك الشجرة الحية للوحدة
  • استخدم state للحالة طويلة العمر التي تقرؤها وتحدّثها عدة أنظمة
  • استخدم events للرسائل الصادرة وللشيفرة التي تترجم تغيّر الحالة إلى إشعارات خارجية
  • استخدم translation لمنطق تحويل البيانات المعرّفة إلى إعدادات runtime أو solver
  • استخدم placement لمنطق تموضع الأبناء بعد معرفة الأحجام
  • تجنب الأسماء العامة مثل types أو helpers أو display عندما يتوفر اسم أكثر دقة

أسماء الأنواع

  • يجب أن تتبع الإضافات النمط Univis<Name>Plugin
  • يجب أن تتبع مجموعات الجدولة النمط Univis<Domain>Set أو Univis<Stage>Set
  • يجب أن تحتفظ مكوّنات الواجهة العامة بالبادئة U*
  • يجب أن تستعمل علامات runtime الداخلية أسماء صريحة مثل SelectTrigger أو PanelResizeHandle أو UiWorkState
  • يجب أن تنتهي الموارد التي تضبط السلوك باللاحقة Settings
  • يجب أن تنتهي الموارد أو المكوّنات التي تتتبع التقدّم الحي باللاحقة State

التعليقات

  • اجعل تعليقات التنفيذ باللغة الإنجليزية
  • فضّل التعليقات التي تشرح القيود أو الثوابت أو سبب وجود فرع معين
  • احذف التعليقات التي تعيد فقط ما تقوله السطر التالية حرفيًا

أسماء التوافق والأنماط القديمة

  • استخدم legacy_* فقط عندما تحافظ الشيفرة عمدًا على دلالة قديمة
  • أبقِ طبقات التوافق المهجورة واضحة في التسمية والتوثيق
  • تجنب إضافة أسماء انتقالية جديدة إلا إذا كانت تحمي مسار ترحيل عام حقيقي

قائمة تحقق قبل إعادة التسمية

قبل إنشاء وحدة جديدة أو إعادة تسميتها، تأكد من:

  1. هل يصف اسم الملف المسؤولية بدلًا من التفصيل التنفيذي؟
  2. هل يستطيع مساهم جديد أن يعرف هل تنتمي الشيفرة إلى model أو runtime أو state أو events أو translation أو placement؟
  3. هل يطابق الاسم الجديد أنماط الإضافات والمكوّنات والحالات الموجودة في الوحدات الشقيقة؟