أصدرت Yandex الكود المصدري لـ Userver ، وهو إطار عمل لإنشاء تطبيقات في C ++

قامت Yandex بنشر الكود المصدري من الإطار نظرة عامة، والذي يسمح لك بإنشاء تطبيقات C ++ محملة بشكل كبير والتي تعمل في الوضع غير المتزامن. الاطار تم اختباره على عمليات التحميل على مستوى Yandex ويستخدم في خدمات مثل Yandex Go و Lavka و Delivery و Market و fintech.

نظرة عامة هو الأنسب لتطوير التطبيقات ذات بنية الخدمات المصغرة. في البداية ، العلامةأو تم تطويره لشركة Yandex Taxiوبمساعدته ، تغير الفريق من تطبيق مترابط إلى بنية تسمح لك بتطوير مكونات مستقلة منفصلة (خدمات مصغرة) واستخدامها في تطبيقات مختلفة.

نعلن اليوم عن إصدار إطار عمل مستخدم مفتوح المصدر لبناء تطبيقات عالية التحميل. بالنسبة لنا ، هذه طريقة مهمة لمشاركة الخبرة في تطوير الخدمات المصغرة التي جمعناها. فيما يلي رابط إلى مستودع GitHub مع كود المصدر والوثائق والعينات ونموذج لإنشاء الخدمات الخاصة بك (مع بيئة CI المكونة والبناء والاختبار) وخدمة التكوين الديناميكي. تم إصدار كل هذا بموجب ترخيص Apache 2.0.

الخدمات المصغرة مستقلة ، لذلك من السهل تحديث تطبيق يعتمد على مثل هذه البنية وإضافة ميزات جديدة إليه. لذلك ، يمكن استخدام الخدمة المصغرة للعثور على سائق لأوامر سيارات الأجرة لمهمة مماثلة ، على سبيل المثال ، العثور على ساعي لتلبية طلبات Yandex Delivery. يمكن القيام بالشيء نفسه مع حساب وقت وصول السائق أو الساعي والعديد من المهام الأخرى.

تم إنشاء إطار العمل في الأصل مع التركيز على الموثوقية والراحة ، وداخله يوفر كل ما تحتاجه للتطوير والتشخيص والمراقبة والتصحيح والتجريب. على سبيل المثال ، يقترح المستخدم كيفية إصلاح الأخطاء في مرحلة البناء ، ويعرف كيفية العمل مع قواعد البيانات المختلفة ، وتغيير المعلمات أثناء التنقل ، وما إلى ذلك.

فيما يتعلق بالتكوين ، فقد ذكر ذلك يتم تضمين السائقين للعمل غير المتزامن مع نظم إدارة قواعد البيانات (MongoDB ، PostgreSQL ، Redis ، ClickHouse ، MySQL) ، العملاء والخوادم التي تعمل بشكل غير متزامن لبروتوكولات مختلفة (HTTP ، HTTPS ، GRPC ، TCP ، UDP ، TLS) ، العناصر الأولية منخفضة المستوى لإدارة المزامنة والوصول إلى إمكانات النظام وكذلك مكونات عالية المستوى للعمل مع التخزين المؤقت ، والمهام ، والأقفال الموزعة ، والتتبع ، والمقاييس ، والإحصاءات ، والبيانات بتنسيقات JSON / YAML / BSON ، بالإضافة إلى أنها تدعم تغيير تكوين الخدمة على الفور ، دون إيقافها.

أما بالنسبة للعيوب من العمارة المتجانسة ما يلي مذكور:

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

في السابق ، نقلت Yandex تقنياتها الرئيسية الأخرى في شكل مشاريع مفتوحة ، على سبيل المثال ، نظام إدارة قاعدة البيانات الموزعة YDB ، القادر على معالجة ملايين الطلبات في الثانية ، بالإضافة إلى مكتبة التعلم الآلي CatBoost ، التي تستخدمها Yandex في البحث وغيرها خدمات.

أخيرا للراغبين في معرفة المزيد عنهايرجى ملاحظة أن Userver مدعومة حاليًا لمجمعات Ubuntu و Debian و Fedora و Arch و Gentoo و macOS و x86 و x86_64 و AArch64 و Arm architecture و GCC 8+ و Clang 9+ ومعايير C ++ 17 و C + 20 و C ++ 23.

تمت كتابة كود المستخدم بلغة C ++ و انه مفتوح بموجب ترخيص Apache 2.0 ويمكن استشارته من الرابط التالي.


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.