جوسيف
هذا هو الريبو الأحادي الرئيسي لمنصة Galaxy Unlimited. البرنامج الموجود هنا عبارة عن مجموعة من المكتبات والخدمات والتطبيقات المشتقة كلها ذات طبيعة عامة إلى حد ما. الغرض الشامل لهذه المكتبات هو العمل كصندوق أدوات C++ يمكن من خلاله تطوير التطبيقات والخدمات بسرعة. يتم تضمين بعض هذه الأدوات/التطبيقات/الخدمات في نفس الريبو الأحادي أيضًا.
لاحظ أن وحدات النظام الأساسي الرئيسية لا تفرض عن قصد إصدارات أحدث من C++ للسماح باستخدامها في المواقف التي لا يتوفر فيها مترجم حديث. أي استخدام لميزات اللغة الأحدث يميل إلى التعامل معه عبر وحدات الماكرو لهذا السبب بحيث لا يزال من الممكن تجميع التعليمات البرمجية باستخدام المترجمين الأقدم.
حول الاسم
كان GUCEF يرمز إلى "Galaxy Unlimited Client Engine Framework" في وقت واحد. لقد كان جزءًا من حزمة متعددة الطبقات تحتوي على طبقات مكدسة مستقلة لبرامج GUCE وGU. يرمز GUCE إلى "Galaxy Unlimited Client Engine". يرمز GUC إلى "Galaxy Unlimited Client". لا يزال GU هو الاختصار لـ "Galaxy Unlimited". في هذا الوقت تم دمج GUCEF وGUCE معًا وتم دمج بعض أجزاء GUC وGU أيضًا. بدلاً من التركيز على جانب العميل في الكثير من التطوير الجديد، ركز على خدمات الدعم والتطوير الخلفي بشكل عام.
قليلا من التاريخ
على مر السنين، تم إنشاء العديد من قواعد التعليمات البرمجية والدروس المستفادة من قبل المؤلف. ببطء ولكن بثبات ظهرت نواة مشتركة من التعليمات البرمجية التي بدأت تنمو بشكل عضوي. فقدت قاعدة التعليمات البرمجية الأساسية المشتركة الأصلية جزئيًا عدة مرات بسبب مشكلات الاحتفاظ بالبيانات وممارسات النسخ الاحتياطي الصغيرة، مما زاد من القيود بسبب نقص الموارد المالية. تم دمج المستودعات المختلفة معًا، والجمع بين العديد من النسخ الاحتياطية الجزئية لإنشاء الإصدار الأول من GUCEF repo. وجدت هذه النسخة الأولى موطنها العام على SourceForce. في الأصل تم استخدام CVS كنظام للتحكم في الإصدار، يليه SVN ثم يليه Git لاحقًا. عندما تم التفكير في الانتقال إلى Git، تم أيضًا التفكير في إنشاء منزل جديد لمستودعات الريبو مفتوحة المصدر. نظرًا لتزايد شعبية مجتمع المصادر المفتوحة، فاز GitHub باليوم باعتباره المقر الجديد لـ GUCEF وبعض اتفاقيات إعادة الشراء ذات الصلة حيث لا يزال موجودًا حتى اليوم.
عن المؤلف
وبصرف النظر عن التبعيات، فقد تمت كتابة كل التعليمات البرمجية الموجودة في هذا المستودع تقريبًا بواسطة Dinand Vanvelzen. بدأ ديناند البرمجة عندما كان طفلاً خلال الثمانينيات، حيث قام بكتابة كود التجميع لجهاز MSX والذي كان عبارة عن تصميم من تصميم Philips لمفهوم الكمبيوتر الشخصي. في وقت لاحق خلال التسعينيات، أصبحت مبادئ برمجة RAD علاقة حب جديدة عبر Borland Delphi متبوعة بـ Borland C++ Builder. في هذه المرحلة، كان المؤلف قد شرع في التعليم المهني في الفنون المظلمة لهندسة البرمجيات. تم اتباع استراتيجية مزدوجة بين برمجة التطبيقات والبرمجة الخلفية/المستوى الأدنى والتي كانت درجات مختلفة في ذلك الوقت. خلال هذا الوقت، استمرت قاعدة التعليمات البرمجية التي تجدها في هذا المستودع في النمو والتطور مع امتزاج المفاهيم وتطورها. خلال العقد الأول من القرن الحادي والعشرين، كان التركيز الرئيسي للمؤلف على التصور، ومعظمه رسومات ثلاثية الأبعاد على المستوى المهني وكفضول فكري يشق طريقه إلى هذا المستودع. أدت الهجرة إلى الولايات المتحدة وتكوين أسرة إلى إبطاء التطور الجديد إلى حد كبير لعدد لا بأس به من السنوات قبل البدء في التعافي بمجرد استقرار الوضع الشخصي. خلال هذه المرحلة بدأت المثالية الشبابية تفسح المجال للبراغماتية. على المستوى المهني، أفسح مجال الرعاية الصحية التدخلية المجال للرعاية الصحية للمؤسسات والتي بدورها أفسح المجال لاحقًا للقطاع المالي. وقد ركز التطوير الجديد اللاحق بشكل عملي على الاحتياجات المشتركة في الحياة المهنية للمؤلف مع خلط المشاريع الغريبة العرضية كوسيلة لتحقيق غاية.
انهيار الريبو الأحادي
- /platform : يحتوي هذا على وحدات النظام الأساسي الرئيسية التي تحتوي على وظائف محمولة ملموسة وواجهات لاستخدام وظائف إضافية عبر المكونات الإضافية
- /plugins : يحتوي على العديد من المكونات الإضافية التي يمكن استخدامها اختياريًا لتوسيع إمكانيات النظام الأساسي
- / المشاريع : يحتوي هذا على نصوص برمجية وما شابه ذلك لإنشاء مشاريع البناء
- /common/bin : يحتوي هذا على مخرجات ثنائية للمشاريع
- / التبعيات : كما يوحي الاسم، يحتوي هذا المجلد على مكتبات التبعيات المختلفة التي تستخدمها المكونات الإضافية، وليس بواسطة مكتبات النظام الأساسي مباشرة.
- / الاختبارات : كما يوحي الاسم، يحتوي هذا على بعض أكواد الاختبار المخصصة
كيفية إنشاء مشروع لـ IDE الخاص بي
الطريقة الرئيسية التي يتم من خلالها دعم ملفات المشروع/الحل IDE هي عبر CMake. يتم إنشاء جميع ملفات CMake تلقائيًا تقريبًا عبر أداة مضمنة في هذا الريبو تسمى "ProjectGenerator". يقوم ProjectGenerator بتحليل الملفات الموجودة في الريبو باستخدام الحد الأدنى من ملفات ModuleInfo.xml لتحديد الوحدات، ومن هناك يستمد جميع المسارات المطلوبة وينشئ الملفات المطلوبة. يمكن لهذه الأداة نفسها إخراج ملفات البرامج الوسيطة لسلاسل الأدوات الأخرى أيضًا، وليس فقط CMake. هناك أيضًا ملفات premake 4 وpremake 5 وandroid make مضمنة ولكن لا يتم تحديثها بشكل متكرر في الوقت الحالي، لذا ستختلف المسافة المقطوعة بين هذه الملفات.
في معظم الحالات، تريد الانتقال إلى /projects/CMake أولاً لإنشاء ملفات IDE ذات الصلة. في هذا المجلد سترى نصوصًا متنوعة بأسماء طويلة. في مرحلة ما، ستتم إعادة هيكلة هذا وفقًا لقائمة المهام ولكن في الوقت الحالي يكون المخطط كما يلي:
كمثال، لديك ملف نصي مثل 'RunCMake_Shared_CodeBlocks_Unix_Debug_pubsub2pubsub.sh'
- RunCMake_: هذا الجزء الأول هو فقط لتمييزه عن الملفات الأخرى الموجودة في المجلد لأسباب تاريخية، تجاهل.
- Shared_: يرتبط هذا الجزء في الغالب بـ CMake حيث ستكون طريقة بناء الوحدة الافتراضية التي تم تمريرها "ديناميكية" (dll/so) مقابل ثابتة (.lib/.a)
- CodeBlocks_ : يحتوي هذا الجزء على اسم IDE الذي ترغب في إنشاء ملفات المشروع له، في هذا المثال Code Blocks IDE
- Unix_ : يشير هذا الجزء إلى النظام الأساسي المستهدف. تدعم بعض IDEs منصات مستهدفة متعددة.
- Debug_: قد لا يكون هذا الجزء موجودًا في جميع البرامج النصية، ويعتمد ذلك على إمكانيات المولد. بالنسبة لبعض المولدات، يجب إنشاء ملفات المشروع نفسها من البداية إما لتصحيح الأخطاء أو إنشاءات الإصدار. هذا ليس ضروريًا في حالة Visual Studio على سبيل المثال
- pubsub2pubsub.sh: يشير هذا المقطع إلى الهدف الرئيسي للعرض المنطقي على الريبو الأحادي بأكمله. في هذه الحالة خدمة pubsub2pubsub.
بمعنى آخر، التنسيق هو: "RunCMake_Shared/Static_IDE لاستخدام_OS Target_Debug/Release_Target name. ملحق البرنامج النصي القابل للتنفيذ"
على نظام التشغيل Windows، عند تشغيل البرنامج النصي أعلاه وما شابه، فإنه سيؤدي أيضًا إلى تشغيل ProjectGenerator. يهدف هذا فقط إلى جعل التدفق أكثر مقاومة للخداع نظرًا لأن ملفات CMake الملتزمة عادةً ما تكون محدثة بالفعل وبالتالي يمكن عادةً حذف هذه الخطوة وتخطيها. بعد هذه الخطوة المحتملة، يتم استدعاء CMake للعناية بإنشاء ملفات البناء. تتم كتابة هذه الملفات إلى /common/bin. يتبع هذا الريبو فكرة مفادها أنه لا ينبغي خلط ملفات الإخراج المؤقتة مع التعليمات البرمجية. إذا واجهت مشكلة لأي سبب من الأسباب مع ملفات الإخراج القديمة/السيئة (مشكلة في القرص؟) فيمكن دائمًا حذف بنية المجلد بالكامل ضمن /common/bin
مكتبات المنصة المضمنة
- GucefMT: مكتبة ذات أساسيات برمجة متعددة الخيوط. من المحتمل أن يتم طيها في gucefCORE في مرحلة ما.
- gucefCORE: مكتبة ذات وظيفة أساسية للطريقة التي تعمل بها الوظائف المبنية على النظام الأساسي مثل أنظمة المكونات الإضافية/التسجيل/المقاييس/الأحداث/إلخ
- gucefIMAGE: مكتبة اختيارية تستخدم عند إنشاء البرامج التي تستخدم الصور الرقمية
- gucefVFS: مكتبة اختيارية تُستخدم عند إنشاء برنامج يقوم بإجراء إدخال/إخراج نمط نظام ملفات أكثر تعقيدًا يتجاوز مجرد الوصول الأساسي. VFS = نظام الملفات الظاهري.
- gucefCOMCORE: مكتبة اختيارية تُستخدم عند إنشاء برنامج يقوم بتنفيذ الشبكات الأساسية
- gucefCOM: مكتبة اختيارية تُستخدم عند إنشاء برنامج ينفذ الشبكات ويستخدم وظائف قياسية في الصناعة إلى حد ما مثل StatsD
- gucefWEB: مكتبة اختيارية تُستخدم عند إنشاء برنامج يقوم بالاتصال بشبكة الإنترنت/الويب
- gucefPUBSUB: مكتبة اختيارية تُستخدم عند إنشاء برنامج يستخدم مفاهيم النشر/الاشتراك
- gucefGUI: مكتبة اختيارية تستخدم عند الحاجة إلى واجهة المستخدم الرسومية. ينصب التركيز الرئيسي على واجهات المستخدم الرسومية في سياق عرض واجهات المستخدم الرسومية غير الأصلية لنظام التشغيل
- gucefINPUT: مكتبة اختيارية تُستخدم عند الحاجة إلى دعم أجهزة الإدخال البشرية.
- gucefLOADER: مكتبة اختيارية تُستخدم عند التحميل الديناميكي لإصدارات منصة GUCEF المتعددة ديناميكيًا
- gucefPATCHER: مكتبة اختيارية تُستخدم عند الحاجة إلى الدعم لوظيفة التصحيح التلقائي مقابل قيام المستخدم النهائي بتنزيل التحديثات يدويًا
- gucefMATH: مكتبة اختيارية تُستخدم عند إجراء العمليات الحسابية الرياضية عبر مفاهيم OO
- gucefKAITAI: مكتبة اختيارية تُستخدم عند تفسير التنسيقات الثنائية للاستفادة من مخطط Kaitai للقيام بذلك
المكونات الإضافية للنظام الأساسي الواردة
- dstorepluginPARSIFALXML: البرنامج المساعد gucefCORE: يضيف دعم برنامج ترميز DStore (DataNode) لـ XML. الكتابة عبر كود GUCEF والقراءة عبر مكتبة تبعية ParsifalXML
- dstorepluginJSONPARSER: البرنامج المساعد gucefCORE: يضيف دعم برنامج ترميز DStore (DataNode) لـ JSON. يستخدم مكتبات تبعية json-parser وjson-builder
- dstorepluginYAML: البرنامج المساعد gucefCORE: يضيف دعم برنامج الترميز DStore (DataNode) لـ YAML. يستخدم مكتبة التبعية libyaml
- codecspluginZLIB: البرنامج المساعد gucefCORE: يضيف دعم برنامج الترميز لـ zlib/gzip/deflate/crc32/adler32
- codecspluginSTBRUMMEHASH: البرنامج المساعد gucefCORE: يضيف دعم برنامج الترميز لـ CRC32/MD5/SHA1/SHA3/SHA256/Keccak
- imgpluginDEVIL: البرنامج المساعد gucefIMAGE: يضيف وظيفة إدارة الصور الرقمية مصدرها مكتبة تبعية الصور DEVIL. يدعم برامج ترميز الصور المختلفة.
- imgpluginFLIC: البرنامج المساعد gucefIMAGE: يضيف دعم برنامج ترميز الصور لتنسيق FLIC
- imgpluginFreeImage: البرنامج المساعد gucefIMAGE: يضيف وظيفة إدارة الصور الرقمية مصدرها مكتبة تبعية الصور FreeImage. يدعم برامج ترميز الصور المختلفة.
- imgpluginITV: البرنامج المساعد gucefIMAGE: يضيف دعم برنامج ترميز الصور لتنسيق ITV ذي الهندسة العكسية
- vfspluginAWSS3: ملحق gucefVFS: يضيف واجهة VFS الخلفية للتثبيت واستخدام AWS S3 كجزء من نظام الملفات الافتراضي
- vfspluginDVP: البرنامج المساعد gucefVFS: واجهة VFS الخلفية القديمة لتركيب ملفات أرشيف DVP واستخدامها كجزء من نظام الملفات الظاهري
- vfspluginITV: البرنامج المساعد gucefVFS: واجهة VFS الخلفية لتركيب واستخدام ملفات أرشيف ITV ذات الهندسة العكسية كجزء من نظام الملفات الافتراضي
- vfspluginVP: ملحق gucefVFS: واجهة VFS الخلفية لتثبيت ملفات أرشيف 'Volation Pack' واستخدامها كجزء من نظام الملفات الافتراضي مثل المستخدم في الألعاب Decent وFreeSpace
- vfspluginZIP: البرنامج المساعد gucefVFS: واجهة VFS الخلفية لتثبيت واستخدام ملفات الأرشيف المتوافقة مع zlib كجزء من نظام الملفات الافتراضي مثل .gz و.zip
- inputdriverDIRECTINPUT8: البرنامج المساعد gucefINPUT: يضيف برنامج تشغيل الإدخال لتفاعل جهاز الإدخال عبر Microsoft DirectInput 8
- inputdriverMSWINMSG: البرنامج المساعد gucefINPUT: يضيف برنامج تشغيل إدخال لتفاعل جهاز الإدخال عبر رسائل Microsoft Windows Win32 API
- inputdriverNANDROID: البرنامج المساعد gucefINPUT: يضيف برنامج تشغيل إدخال لتفاعل جهاز الإدخال عبر واجهات برمجة تطبيقات Android الأصلية
- inputdriverOIS: البرنامج المساعد gucefINPUT: يضيف برنامج تشغيل الإدخال لتفاعل جهاز الإدخال عبر مكتبة تبعية OIS
- inputdriverXWINMSG: البرنامج المساعد gucefINPUT: يضيف برنامج تشغيل الإدخال لتفاعل جهاز الإدخال عبر نظام المراسلة X-Windowing لنظام التشغيل Linux
- pubsubpluginAWSSNS: gucefPUBSUB plugin: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لخدمة SNS الخاصة بـ AWS. يستخدم AWS C++ SDK.
- pubsubpluginAWSSQS: البرنامج المساعد gucefPUBSUB: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لخدمة SQS الخاصة بـ AWS. يستخدم AWS C++ SDK.
- pubsubpluginKAFKA: ملحق gucefPUBSUB: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لتدفقات Kafka. يستخدم مكتبة تبعية RdKafka.
- pubsubpluginMSMQ: البرنامج المساعد gucefPUBSUB: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لـ MSMQ. يستخدم نظام التشغيل Windows MSMQ الفرعي الذي يحتاج إلى التثبيت.
- pubsubpluginREDISCLUSTER: gucefPUBSUB plugin: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لتدفقات Redis. يستخدم تبعيات redis ++ و Hireis.
- pubsubpluginSTORAGE: gucefPUBSUB plugin: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub تتيح التفاعل السهل مع VFS وإمكانياته
- pubsubpluginUDP: gucefPUBSUB plugin: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لـ UDP الأساسي
- pubsubpluginWEB: البرنامج المساعد gucefPUBSUB: يضيف واجهة خلفية متوافقة مع مفهوم pub-sub لمفاهيم الويب مثل HTTP/REST/WebSockets
- ProjectGenDependsFilter: البرنامج المساعد ProjectGen: يسمح بتصفية المكتبات في الريبو بناءً على تقرير إخراج أداةdependent.exe
- ProjectGenVSImporter: البرنامج المساعد ProjectGen: يستورد ملفات مشروع Visual Studio لإنشاء نقطة بداية ModuleInfo.xml لمستودع جديد
- comcorepluginDBL: البرنامج المساعد gucefCOMCORE الذي يحاول توفير معلومات من برنامج تشغيل شبكة Myricom DBL
- comcorepluginGEOOSM: البرنامج المساعد gucefCOMCORE الذي يضيف إمكانات البحث عن الموقع الجغرافي المستندة إلى خرائط الشوارع المفتوحة
الخدمات الواردة
- UdpViaTCP: خدمة الجسر التي تقوم بنقل حركة مرور UDP عبر مقطع TCP. سيتم استبداله بـ pubsub2pubsub.
- udp2kafka: خدمة المحول التي تسمح بدخول حركة مرور UDP إلى تدفقات كافكا. سيتم استبداله بـ pubsub2pubsub.
- udp2redis: خدمة المحول التي تسمح بدخول حركة مرور UDP إلى تدفقات Redis لـ redis غير المجمعة. سيتم استبداله بـ pubsub2pubsub.
- udp2rediscluster: خدمة المحول التي تسمح بدخول حركة مرور UDP إلى تدفقات Redis لـ redis المجمعة. سيتم استبداله بـ pubsub2pubsub.
- ProcessMetrics: خدمة الوكيل التي تحصل على مقاييس لعملية مستهدفة. يُقصد به أن يكون بديلاً خفيف الوزن لعدادات الأداء عالية التردد وما شابه ذلك
- redisinfo: خدمة المراقبة التي تستخدم بروتوكول Redis للحصول على معلومات حول مجموعات Redis وكشف هذه المعلومات كمقاييس للبث
- pubsub2storage: خدمة المحول التي تترجم بشكل عام بين نماذج المراسلة والتخزين. سيتم استبداله بـ pubsub2pubsub.
- pubsub2pubsub: خدمة المحول التي تترجم بشكل عام بين نماذج المراسلة المختلفة. سوف يحل محل العديد من خدمات المحول الأخرى.
- FilePusher: خدمة الوكيل التي تراقب نظام الملفات لملفات معينة وتدفعها إلى وجهة VFS على سبيل المثال AWS S3.
- FileSorter: خدمة الوكيل التي تقوم بفرز الملفات تلقائيًا. مفيد للفرز الأولي للصور الرقمية وأرشيف الفيديو على سبيل المثال.
- GucefLogService: الخدمة التي يمكنها قبول سجلات منصة GUCEF المتدفقة عبر اتصال الشبكة. تستهدف المواقف التي لا يمكننا فيها الحصول على/الوصول إلى السجلات المحلية
- ServerPortExtender: الخدمة المستخدمة لعكس بدء الاتصال الوارد/الصادر لمنفذ خادم التطبيق وبالتالي تجاوز قيود الخروج فقط
- UdpTransformer: الخدمة التي تدخل UDP وتقوم بإجراء تحويل مبسط متبوعًا بإعادة الإرسال
- MsmqMetrics: خدمة الوكيل التي تجمع المعلومات حول قوائم انتظار MSMQ ثم تقوم بعد ذلك بتجميع وإرسال المقاييس الخاصة بقوائم الانتظار المذكورة
الأدوات الواردة
- ProjectGenerator: أداة لإنشاء ملفات المشروع/الوحدة النمطية المتنوعة تلقائيًا وطرق عرض منطقية مختلفة لنفس الريبو الأحادي
- DCSBruteInstaller: أداة للاستفادة من مجموعة من بعض الأجهزة وهذا البرنامج لكسر الرموز في لوحة إنذار DCS المنزلية بالقوة
- itvExporter: أداة تصدير مصممة بشكل عكسي للأصول الموجودة في لعبة كلاسيكية
- GucefArchiver: أداة أرشيفية أساسية تستفيد من VFS ومكوناته الإضافية
- HDFiller: كما يوحي الاسم، فهو يملأ القرص الصلب لديك. مخصص لسيناريوهات الاختبار.
- PubSubStorageTool: أداة لمعالجة ملفات التخزين التي ينتجها البرنامج الإضافي للتخزين pubsub
المكتبات المتنوعة الواردة
- MemoryLeakFinder: مكتبة مساعدة للنظام الأساسي محملة ديناميكيًا لتعقب تسرب الذاكرة بمساعدة وظيفة نظام GUCEF الأساسي
- ProjectGen: مكتبة تحتوي على كل منطق أداة ProjectGenerator. يدعم المكونات الإضافية لتوسيع الوظائف.
قائمة المهام
- على المدى القصير: قم بإضافة دعم websocket الأساسي الأصلي للنظام الأساسي
- المدى القصير: إضافة دعم المعلمات المناسبة لبرنامج الترميز
- على المدى القصير: أضف دعم StringView
- على المدى القصير: أكمل التمريرة الأولية على البرنامج المساعد pubsub2pubsub "الويب".
- على المدى القصير: أكمل التمريرة الأولية على البرنامج المساعد pubsub2pubsub 'aws sns'
- على المدى القصير: أكمل التمريرة الأولية على البرنامج المساعد pubsub2pubsub 'aws sqs'
- على المدى القصير: قم بإضافة فئة CodecChain المدفوعة بالتكوين
- منتصف المدة: إصلاح تكامل GitHub CI. رابط تشغيل البناء التلقائي معطل.
- منتصف المدة: إضافة نظام مخطط DataNode
- منتصف المدة: إضافة محرك تحويل الرسائل القائم على التكوين
- منتصف المدة: أضف دعم AWS Lambda
- منتصف المدة: إضافة دعم Utf16 وUtf32
- منتصف المدة: استخدم StringView بدلاً من String لجميع مراجع السلسلة الثابتة
- المدى المتوسط: تحويل ProjectGenerator إلى شيء يمكن تشغيله كخدمة خلفية
- المدى المتوسط: دعم إجراءات GitHub الكاملة عبر ProjectGenerator
- المدى المتوسط: أضف دعم GitLab CI عبر ProjectGenerator
- منتصف المدة: إكمال إعادة تسمية الملفات المصدرية للنظام الأساسي بحيث تحتوي جميعها على بادئة الوحدة النمطية
- المدى المتوسط: إزالة التعليمات البرمجية الميتة كجزء من جهد أكبر لتنشيط المشاريع الواردة في نظام الريبو الأحادي. حدد التطبيقات الأخرى الموجودة هنا والتي تستحق الحفظ.
- المدى المتوسط: أضف دعم التدفق إلى نظام التسجيل باستخدام مخازن الإخراج المؤقتة المخصصة مسبقًا لكل مؤشر ترابط كتحسين
- المدى المتوسط: إعادة إنشاء وظيفة عميل وحدة تحكم النظام الأساسي
- المدى المتوسط: إضافة دعم مأخذ التوصيل الآمن الأصلي للأنظمة الأساسية المدعومة
- على المدى الطويل: إضافة دعم تجميع الويب
- على المدى الطويل: قم بإضافة دعم Jenkins CI عبر ProjectGenerator
- يوم واحد: إهمال/التراجع عن البادئة "C" لنمط MFC الكلاسيكي للفئات. سيكون هذا تغييرًا كبيرًا يكسر كل شيء، ولهذا السبب لم يحدث بعد.
- مستمر: تقييم الحاجة إلى تحديث التبعيات المختلفة مع مراعاة عدد كبير من القيود
- مستمر: تحسين التسجيل/المقاييس
- مستمر: إضافة المزيد من وثائق تنسيق javadoc (متوافق مع Doxygen).