حالة التكامل المستمر
فرع | دول مجلس التعاون الخليجي 7.5.0 و 9.4.0 | فيجوال ستوديو 2019 | |
---|---|---|---|
كلانج 9.0 | فيجوال ستوديو 2022 | ||
اكس كود 15.2 | مينغو-w64 | ||
اكس كود 15.4 | |||
يتقن | |||
تطوير |
تحميل
مشروع C++ Micro Services عبارة عن مجموعة من المكونات لبناء تطبيقات معيارية وديناميكية موجهة نحو الخدمة. وهو يعتمد على OSGi، ولكنه مصمم لدعم الحلول الأصلية عبر الأنظمة الأساسية.
يؤدي الاستخدام الصحيح لأنماط ومفاهيم C++ Micro Services إلى أنظمة تتمتع بواحدة أو أكثر من الخصائص التالية:
لا شيء، باستثناء مترجم C++ حديث بما فيه الكفاية. يتم تضمين كافة تبعيات مكتبة الطرف الثالث وتستخدم في الغالب لتفاصيل التنفيذ.
تستفيد المكتبة من ميزات لغة ومكتبة C++ 17 وتجميعها على العديد من الأنظمة الأساسية المختلفة.
يوصى بالحد الأدنى المطلق لإصدارات المترجم المطلوبة:
لم يتم اختبار كافة إصدارات المترجم الحد الأدنى المطلق (كما هو مذكور). نحن نختبر ونوصي بالمترجمين التاليين:
الحد الأدنى الموصى به من إصدار CMake المطلوب:
بالنسبة لجميع إصدارات CI من خلال GitHub Actions، يتم تحديد إصدار CMake (وإصدار البرامج الأخرى المتوفرة) الذي نستخدمه من خلال البرنامج المقدم على مشغلات GitHub المستضافة.
للحصول على معلومات حول الإصدارات المحددة من البرامج التي يستخدمها المتسابقون، يرجى الاطلاع على الموارد التالية:
فيما يلي قائمة بمجموعات المترجم/نظام التشغيل التي تم اختبارها:
تم تطوير مشروع C++ Micro Services في البداية في المركز الألماني لأبحاث السرطان. تتم استضافة كود المصدر الخاص به كمشروع GitHub. راجع ملف حقوق الطبع والنشر في دليل المستوى الأعلى للحصول على معلومات مفصلة حول حقوق الطبع والنشر.
تم ترخيص هذا المشروع بموجب ترخيص Apache v2.0.
يرحب CppMicroServices.org بالمطورين ذوي الخلفيات المختلفة ومجموعة واسعة من الخبرة. سيعمل المجتمع المتنوع والشامل على إنشاء المزيد من الأفكار الرائعة، وتوفير المزيد من وجهات النظر الفريدة، وإنتاج المزيد من التعليمات البرمجية المتميزة. هدفنا هو جعل مجتمع CppMicroServices مرحبًا بالجميع.
ولتوضيح ما هو متوقع من أعضائنا، اعتمدت CppMicroServices قواعد السلوك المحددة بواسطة contributor-covenant.org. يتم استخدام هذه الوثيقة عبر العديد من المجتمعات مفتوحة المصدر، ونعتقد أنها توضح قيمنا بشكل جيد.
يرجى الرجوع إلى : أي: `قواعد السلوك <قواعد السلوك>` لمزيد من التفاصيل.
ابدأ باستنساخ مستودع المشروع. من المهم ملاحظة أنه بما أن المشروع يستخدم وحدات git الفرعية، فيجب عليك استنساخ المستودع باستخدام العلامة --recursive. سيؤدي هذا أيضًا إلى استنساخ الوحدات الفرعية ووضعها في الأدلة الخاصة بها. لمزيد من القراءة حول كيفية عمل وحدات git الفرعية وكيفية استنساخها في مستودع موجود بالفعل على القرص الخاص بك، يرجى مراجعة وثائق Git.
بشكل أساسي، توفر لك مكتبة C++ Micro Services سجل خدمة ديناميكي قوي بالإضافة إلى دورة حياة مُدارة. يدير إطار العمل، من بين أمور أخرى، الوحدات المنطقية للوحدات النمطية التي تسمى الحزم الموجودة في المكتبات المشتركة أو الثابتة. تحتوي كل حزمة داخل مكتبة على كائن :any:`cppmicroservices::BundleContext` مرتبط به، والذي يتم من خلاله الوصول إلى سجل الخدمة.
للاستعلام عن السجل الخاص بكائن خدمة يقوم بتنفيذ واجهة محددة واحدة أو أكثر، سيبدو الكود كما يلي:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void UseService (BundleContext context)
{
auto serviceRef = context. GetServiceReference <SomeInterface>();
if (serviceRef)
{
auto service = context. GetService (serviceRef);
if (service) { /* do something */ }
}
}
يبدو تسجيل كائن خدمة مقابل واجهة معينة كما يلي:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void RegisterSomeService (BundleContext context, const std::shared_ptr<SomeInterface>& service)
{
context. RegisterService <SomeInterface>(service);
}
يسمح نموذج خدمة OSGi بالإضافة إلى ذلك بتعليق الخدمات بالخصائص واستخدام هذه الخصائص أثناء عمليات البحث عن الخدمة. كما يسمح بتتبع دورة حياة كائنات الخدمة. يرجى الاطلاع على الوثائق لمزيد من الأمثلة والبرامج التعليمية ومرجع واجهة برمجة التطبيقات. يوجد أيضًا منشور مدونة حول OSGi Lite لـ C++.
يحتوي مستودع Git على فرعين أبديين، رئيسي وتطوير. يحتوي الفرع الرئيسي على رمز جودة الإنتاج ويشير رأسه إلى أحدث إصدار تم إصداره. فرع التطوير هو الفرع الافتراضي ويحتوي على الحالة الحالية للتطوير. تستهدف طلبات السحب بشكل افتراضي فرع التطوير. راجع ملف :ref:`المساهمة <contributing>` للحصول على تفاصيل حول عملية المساهمة.
يحدد مستودع CppMicroServices خطافات git الخاصة به في الدليل .githooks. تم تعيين هذا الدليل كدليل لخطافات git عبر تنفيذ git config core.hooksPath <path> في ملف CMakeLists.txt الخاص بنا.
إذا فشل خطاف الالتزام المسبق لتنسيق clang بسبب عدم تثبيت تنسيق clang، فيرجى تثبيته ووضعه على المسار. وبالمثل، إذا لم يتم تثبيت تنسيق git-clang، فافعل الشيء نفسه. يأتي تنسيق git-clang مع توزيع LLVM لتنسيق clang.
إذا لم يكن ذلك ممكنًا بالنسبة لك، فيمكنك تحديد --no-verify عند تنفيذ التغييرات. لا يُنصح بذلك بشدة ويجب عليك تقديم مبرر لسبب عدم قدرتك على تنسيق التزامك.
نحن نحتفظ بالحق في رفض أي طلبات سحب لم يتم تنسيقها بشكل صحيح وليس لها مبرر صالح محدد.