QBS هو نظام أتمتة بناء يحركه المجتمع ولا يعرف اللغة. إنه سريع ويوفر وسيلة سهلة لتعلم اللغة بناءً على QML.
مؤخرا تم الإعلان عن إصدار الإصدار الجديد من Qbs 2.0 ، وهو برنامج متعدد المنصات مجاني ومفتوح المصدر لإدارة عملية إنشاء البرامج. تم تصميمه لدعم المشاريع الكبيرة والمعقدة ، المكتوبة بلغات برمجة مختلفة ، بشكل رئيسي C / C ++.
النسخة الجديدة 2.0 مهم في رقم الإصدار ، لأنه مرتبط بتنفيذ خلفية JavaScript جديدة.، التي حلت محل QtScript ، والتي تم إهمالها في Qt 6.
بالنسبة لأولئك الذين يجهلون Qbs ، يجب أن يعرفوا ذلك يستخدم نسخة مبسطة من لغة QML لتحديد البرامج النصية لبناء المشروع ، مما يسمح لك بتحديد قواعد بناء مرنة إلى حد ما حيث يمكن توصيل الوحدات الخارجية ، ويمكن استخدام وظائف JavaScript ، ويمكن إنشاء قواعد بناء عشوائية.
QBS فريد من نوعه في ذلكليس لديه أي آلية للتجميعات الداخلية ، ضمان القدرة على إنشاء بنيات متعددة من شجرة مصدر واحدة ، بما في ذلك البناء من استدعاء أمر واحد وبالتوازي.
هذه هي السمة الرئيسية التي يضمن عدم تأثر ملفات المصدر إذا تم حذف دليل البناء وأنه لم تتم كتابة أي عناصر ناتجة في دليل المصدر. لبناء Qbs ، يلزم استخدام Qt كعنصر تبعية ، على الرغم من أن Qbs نفسها مصممة لتنظيم تجميع أي مشروع.
تم تصميم لغة البرمجة النصية المستخدمة في Qbs لأتمتة إنشاء البرامج النصية وتحليلها بواسطة IDEs. علاوة على ذلك ، لا يُنشئ Qbs ملفات makefiles ، وبدون وسطاء مثل الأداة المساعدة make ، يتحكم في إصدار المجمعين والرابطات ، مما يُحسِّن عملية الإنشاء استنادًا إلى رسم بياني مفصل لجميع التبعيات.
يسمح لك وجود البيانات الأولية حول الهيكل والتبعيات في المشروع بالتوازي بشكل فعال مع تنفيذ العمليات في العديد من سلاسل العمليات. بالنسبة للمشاريع الكبيرة التي تتكون من عدد كبير من الملفات والأدلة الفرعية ، يمكن أن يكون أداء عمليات إعادة البناء باستخدام Qbs أفضل بعدة مرات من إجراء: إعادة البناء تكاد تكون فورية ولا تضيع وقت المطور في الانتظار.
أهم المستجدات في QBS 2.0
هذا الإصدار الجديد من QBS 2.0 ملحوظ كما هو مذكور في البداية ، بسبب محرك JavaScript جديد يأتي ليحل محل QtScript الذي تم إهماله لـ Qt 6 ، حيث كان من غير الواقعي الاستمرار في دعم QtScript بمفرده بسبب الارتباطات المعقدة بـ JavaScriptCore.
لم تكن فكرة الحفاظ على QtScript مع التبعية المعقدة جذابة بشكل خاص. ومع ذلك ، لم يقدم أي من المرشحين واجهة برمجة تطبيقات لاعتراض عمليات الوصول إلى الممتلكات ، وهو أمر يقول المطورون إنهم بحاجة إليه تمامًا لأسباب تتعلق بالأداء.
من وجهة نظر المستخدم ، يجب ألا تكون هناك تغييرات ملحوظة ؛ على وجه الخصوص ، يبدو أن الأداء متماثل تقريبًا. ومع ذلك ، كان QtScript متساهلًا جدًا في قبول القيم غير المحددة في السياقات التي لم تكن مضطرًا إليها ، لذلك قد يكشف التطبيق الجديد عن بعض الأخطاء في مشاريعك.
المحرك متوافق مع مواصفات ES2019 ويتفوق بشكل كبير على نظرائه الحاليين في الأداء (XS بنسبة 35٪ ، DukTape بأكثر من مرتين ، JerryScript بثلاث مرات ، و MuJS بسبع مرات). من وجهة نظر تطوير نص البناء ، لا ينبغي أن يؤدي الانتقال إلى محرك جديد إلى تغييرات ملحوظة.
سيبقى الأداء أيضًا كما هو. من بين الاختلافات ، هناك متطلبات أكثر صرامة في المحرك الجديد لاستخدام القيم الخالية ، والتي يمكن أن تكشف عن مشاكل في المشاريع الحالية التي لم يلاحظها أحد عند استخدام QtScript.
بالإضافة إلى ذلك ، فقد ورد ذكر ذلك أيضًا إزالة ملفات مشروع qmake ، مما أدى إلى تقليل أعمال الصيانة للمطورين.
أخيرًا ، تم ذكر أن الإصدار 2.1 سيشهد إعادة كتابة للكود الذي يفترض المطورون أنه سيكون لديهم العديد من الميزات الجديدة ، بالإضافة إلى تحسينات عامة في الأداء.
إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك الرجوع إلى التفاصيل في الرابط التالي.