في 7 - 8 أبريل ، عقد مجتمع CoreHard المؤتمر الدولي الثامن CoreHard Spring 2018 في مينسك على لغة C ++ وتقنيات "المتشددين" ذات الصلة في مينسك. حضر المؤتمر متحدثون من شركات تكنولوجيا المعلومات الرائدة في روسيا البيضاء وروسيا وأوكرانيا وألمانيا وهولندا. تحدثوا عن تجربتهم في التطوير والاختبار.
الآن تقارير المؤتمر متاحة مجانًا على موقع YouTube ويمكن للجميع التعرف عليها. شكرا لمنظمي المؤتمر.
التقى مؤلف التقرير C ++ في عام 1991 ، ومنذ عام 1992 ، كانت C ++ لغة التطوير الرئيسية للمتحدث. ماذا حدث لللسان خلال هذا الوقت؟ كيف ولماذا أصبح مشهورًا؟ كيف بدأ الركود في تطوير C ++؟ كيف فقدت C ++ شعبيتها؟ هل هناك مجال لـ C ++ في العالم الحديث؟ دعونا نحاول التحدث عنه ، بناءً على 25 عامًا من الخبرة في برمجة C ++.
دعونا نتحدث عن كيفية تغير أساليب العمل مع كائنات اللعبة في ألعاب المباراة 3 ، وكيف توصلنا إلى نهج مكون الميزة الحالي لإنشاء كائنات لعبة قابلة للتغيير. ما هي مزاياها على الطرق الأخرى المجربة والمختبرة لإنشاء برامج تعليمية ، والعديد من الأوضاع ، بالإضافة إلى مراجعة التعليمات البرمجية.
لنتحدث عن الخطافات الوظيفية في التطبيقات المكتوبة بلغات وتقنيات مختلفة. سيأخذ التقرير بعين الاعتبار: المفاهيم الأساسية والتطبيقات وأنواع طرق الاعتراض وخصائصها الفنية والمكتبات الجاهزة.
في التقرير ، يتحدث المؤلف عن تجربته العملية في تجميع واستخدام C ++ على صفحات الويب ، وحول ما يجب القيام به لنقل تطبيق في C ++ إلى الويب ، وحول القيود المرتبطة بهذا ، حول دمج كود C ++ مع JavaScript وعناصر الويب الأخرى الصفحات.
3.5 blockchain من 2 ميغا بايت: كيف ولماذا ولماذا. ميزات تطوير حلول blockchain عبر الأنظمة الأساسية.
في هذا التقرير ، يتحدث المؤلف عن حقيقة أن Obj-C / C ++ هو امتداد لـ C / C ++ الحالي. ستأخذ أيضًا في الاعتبار ميزات اللغة ، وتتحدث عن إدارة الذاكرة (الاحتفاظ / الإصدار مقابل ARC مقابل Shared_ptr / unique_ptr) ، وعن Swift وسبب كونها أفضل أو أسوأ من Obj-C / C ++.
في C ++ ، هناك العديد من الطرق لحل نفس المشكلة. سنأخذ المشكلة الحقيقية من ممارسة المؤلف ونستكشف عددًا من أدوات C ++ لحلها: حاويات STL ، و boost.range ، ونطاقات C ++ 20 ، و coroutines. سنقوم بمقارنة الحلول من حيث واجهاتها وأدائها ، وسنرى أيضًا كيف يمكن الحصول على أحد الحلول بسهولة من حل آخر إذا تم تنظيم الشفرة بشكل صحيح. في هذه العملية ، سنلقي نظرة على ميزات C ++ 17: constexpr if وعبارات التحديد باستخدام المُهيئ و std :: not_fn وما إلى ذلك. سيتم إيلاء اهتمام خاص للخوارزميات القياسية (موضوعي المفضل).

تحليل تدفق البيانات (تدفقات البيانات) هي تقنية لتحليل التعليمات البرمجية المصدر للبرامج التي يتم استخدامها على نطاق واسع في أدوات التطوير المختلفة: المترجمين ، والوبر ، و IDEs. سنتحدث عنه باستخدام تطوير محلل ثابت كمثال. ضع في اعتبارك التصنيف وأنواع مختلفة من تحليل تدفق البيانات ، والتقنيات ذات الصلة التي تكمل بعضها البعض والمشاكل التي تنشأ أثناء تطويرها ، والمفاجآت التي تقدمها C ++ لنا عندما نحاول تحليلها. خلال التقرير ، سنقوم بتحليل العديد من الأخطاء الموجودة في المشاريع الحقيقية باستخدام هذه التكنولوجيا.
يحدث أن يبدأ تطبيقك في بعض الأحيان في أداء مهام تبدو عادية لفترة طويلة ويستهلك كمية كبيرة من ذاكرة الوصول العشوائي. وأنت كمطور ، ليس لديك فكرة عن سبب حدوث ذلك (لكنك مهتم). في سياق الحديث ، سنتحدث عن الأدوات التي يمكنها فهم أسباب السلوك الغريب لبرامجنا. إذا كنت لا تخاف من كلمات مثل Valgrind و gprof و gperftools وغيرها الكثير - مرحبًا!
كيفية إعداد / تحديث البيئات بسرعة وسهولة لمشاريع الترجمة المتداخلة لمختلف المنصات (بناءً على عامل الميناء) ، وكيفية التبديل بينها بسرعة ، وكيفية تنظيم CI والاختبار (بناءً على GitLab و Docker) باستخدام هذه الطوب.
سيأخذ التقرير في الاعتبار إنشاء التعليمات البرمجية عند تجميع تراكيب لغات مختلفة ، بسيطة ومعقدة ، على منصات مختلفة ، كل من x86 / x64 المشترك ، وتلك التي تحظى باهتمام أقل: ARM ، AVR. ستكون هناك أيضًا أمثلة للمعالجات الغريبة تمامًا مثل PowerPC وحتى MicroBlaze. لن يتم التركيز بشكل رئيسي على معالجة البيانات ، ولكن على مقارنة تراكيب التعليمات البرمجية المختلفة مع تعليمات المنصات المستهدفة.
تنقسم برمجة اليوم إلى العديد من المجالات البعيدة تمامًا عن بعضها البعض. هل توجد برمجة موحدة من الناحية المفاهيمية على الإطلاق ، وماذا ترتكز هذه الوحدة؟ الإجابة على هذه الأسئلة وغيرها مقدمة من قبل كاتب التقرير.
الشيطان يكمن في التفاصيل. ينطبق هذا أيضًا على C ++ 17. نحصل على ميزات رائعة جديدة ، ولكن لدينا أيضًا أشياء جديدة للعناية بها وتذكرها. يناقش هذا الحديث بعض الميزات الرائعة عندما قد تؤدي إلى مفاجآت.
المناقشات
لا تفوت المناقشات التي أثارت مواضيع مختلفة تتعلق بمناقشة لغتي Rust و C ++ ، بالإضافة إلى إجابات على أسئلة أعضاء لجنة التقييس C ++.