
ما الذي يشترك فيه هؤلاء الأشخاص ، إلى جانب حقيقة أنهم جميعًا معروفون في عالم C ++؟
- شون الوالد
- إريك نيبلر
- مارشال كلو
- برايس ادلشتاين للباخ
- انطون بولوخين
- أندريه ديفيدوف
الجواب: كلهم سيأتي إلى روسيا C ++. الآن وقد انتهى الصيف وعاد الجميع من العطلة ، حان الوقت لانتظار مؤتمر C ++ الكبير التالي: C ++ Russia 2019 Piter . سيتناولها ليس فقط أشخاص من هذه القائمة ، ولكن أيضًا من قِبل العديد من المتحدثين الدوليين الآخرين. 30 تقريرًا ، يومان كاملان من 10 صباحًا إلى 7 مساءً ، ولا توجد قصص تمهيدية وقراءة الوثائق على المقاطع - المتشددين على الفور.
تبين أن هذا أحد أسرع مؤتمراتنا وأكثرها تنظيمًا من حيث النوعية ، فقد أصبح نصف البرنامج معروفًا في فصل الصيف: يعرف المتحدثون بوضوح الأشياء التي يريدون أن يقولوها في C ++ Russia. الآن استقر البرنامج تقريبًا ، وحان الوقت لفتح حجاب السرية.
نقسم جميع التقارير إلى "فئات تخطيط" ، والتي نملؤها بعد ذلك بموضوعات مثيرة للاهتمام. ها هم:
- قدرات المعايير الجديدة
- عملي C ++
- البنية التحتية
- خاصية تعدد
- metaprogramming
- البرمجة الوظيفية
يتم عرض الفئات بترتيب تنازلي لعدد التقارير: بدءًا من تسعة تقارير حول الميزات القياسية الجديدة ، وتنتهي بالتقرير الوحيد عن الوظيفة في الوقت الحالي - " تمييز نوع وقت الترجمة " من إعداد إيفان تشوكيتش. لا تزال هناك بعض البقع البيضاء في البرنامج والتي ستمتلئ حرفيًا في الأسبوعين المقبلين. دعونا نرى ما حدث نتيجة لذلك.
عناوين رئيسية
جميع المتحدثين شخصيات معروفة في المجتمع ، والكتابة عنها يمكن أن تكون لا نهاية لها. دعونا نتحدث بالتفصيل على الأقل عن أولئك الذين أدرجناهم قبل الكات.
Sean Parent هو أحد الباحثين والمهندسين المعماريين الرائدين في قسم Adobe للجوال. وقد طور مهنة مشرقة في الشركات العالمية المشهورة. في الفترة من 1988-1993 ، ساعد Apple في كتابة أنظمة تشغيلها الشهيرة لـ PowerPC ، ومنذ عام 1993 بدأ تطوير Photoshop ، وقضى عام 2009 في Google ، وتطوير ChromeOS ، وعاد إلى Adobe. ماذا يمكن أن يخبرنا شخص لديه مثل هذا التاريخ الغني؟ يمكنك الآن العثور على الكثير من مقاطع الفيديو على YouTube بمشاركته ، على سبيل المثال - سلسلة من التقارير Better Code ، والتي تتحدث عن نفسها. ليست هذه هي المرة الأولى التي نقيم فيها في C ++ Russia: في فجر تاريخ المؤتمر ، في عام 2015 ، كان هو الذي أصدر التقرير الافتتاحي الأول ، وفي عام 2017 أجرينا معه مقابلة لمدة نصف ساعة . كل شيء يقوله Sean Parent يختلف في العمق والشرح ، إنه ليس مادة "انظر وننسى" ، ولكنه شيء يستحق التذكر والعودة مرارًا وتكرارًا.
الآن هو يطير إلينا بتقرير جديد من سلسلة BetterCode: Relationships ، وبالتأكيد لا تريد تفويت هذا. لهذا السبب تم اختيار التقرير من خلال المؤتمر الرئيسي - سيتمكن جميع المشاركين من رؤيته قبل أن ينتشروا في غرف منفصلة.
ويقود الكلمة الرئيسية الثانية إريك نيبلر . سيكون الأمر هنا لإنهاء القصة ، لأنه في الآونة الأخيرة ، أصبح اسمه أكثر من المعروف بشكل عام بفضل " النطاقات القياسية" ، كما تمت تسمية الإيماءات الطينية التي أصبحت المصطلح (انظر العلامات على CppReference ) باسمه. ولكن بصفة عامة ، كل هذا مجرد ضجيج ، وقد فعل الكثير من أجل C ++.
إريك عضو نشط في لجنة توحيد معايير C ++ ، وهو مطور رئيسي في Facebook ، وقد بدأ في هذا الوقت في الانخراط في هذا المجال. في أوقات ما قبل الفيسبوك ، كان مستشارًا ، يعمل بشكل فردي ومع BoostPro Computing . في التعزيز ، لم يكتب فقط العديد من مكتباته وأدى دور مدير الإصدار ، ولكنه أصبح أيضًا عضوًا في لجنة التوجيه التوجيهية ، والتي (وفقًا للاسم) تتعامل مع قضايا التطوير الاستراتيجي. بدعة إريك تكتب بقوة وفي نفس الوقت رمزًا أنيقًا ، تعمل على تطوير تجريدات جميلة (والتي ، عمومًا ، يمكنك رؤيتها في نطاقات ... أو لا ترى ، حسب التفضيلات). بنفس القدر من الأهمية ، يمكنه نقل الأفكار ليس فقط باستخدام الكود ، ولكن أيضًا في شكل تقارير واضحة مفهومة.
وصل إريك بالحديث "تجريد موحد للتزامن في C ++" . باختصار حول المشكلة: عدم التزامن في C ++ الآن في الجزء السفلي ، يجب إصلاحه. الأدوات القياسية مثل الوعود والعقود المستقبلية والخيوط والأقفال وحتى std::async
- كلها تعمل إما بطريقة غير فعالة أو مكسورة أو كلاهما في نفس الوقت. الرعب. والأسوأ من ذلك ، أنه لا توجد طريقة قياسية لمعرفة بالضبط أين يجب أن يتم العمل. ومع ذلك ، لدينا مجموعة من المهام الخاصة بـ C ++ التي تحتاجها: الخوارزميات المتوازية ، والحوسبة غير المتجانسة ، والشبكات ، والتدخل IO ، التدفقات التفاعلية ... جميع التقنيات الأساسية الحيوية التي تنتظر التجريد القياسي لسنوات لتعكس فكرة الحوسبة غير المتزامنة. في هذا التقرير ، سوف يحفر إريك بحث اللجنة الذي حددت فيه العمليات الأساسية وراء أي حسابات غير متزامنة. سنرى لماذا تتباطأ العقود الآجلة والوعود كثيرًا ، وما هو المنفذ ، وما هو الشائع بين عمليات الاستعادة والكوروتينات ، وكيف يمكن لـ "المهمة" التجريدية (التي تدرسها R&D الآن بنشاط على Facebook من قبل R&D) أن تحدث نفس الثورة في تزامن حدوث ذلك مع ظهور التكرارات في رمز متزامن العادية.
إذا كان إريك مهندسًا رائعًا وباحثًا نادرًا ما يتكلم ، فإن مارشال كلو هو نجم المؤتمرات الدولية. إذا ذهبت إلى YouTube وأدخلت اسمه في البحث ، فسيصبح YouTube صفحته الرئيسية الشخصية. CppCon ، C ++ الآن ، ACCU ، EuroLLVM - كل ما يمكنك تخيله. والآن هنا C ++ روسيا. ومن المثير للاهتمام ، مع كل هذا ، أنه ليس مجرد مبشر عادي آخر ، ولكن C ++ - مطور لديه 35 عامًا من الخبرة ، والمؤلف الأصلي لـ Boost.Algorithm
(والمساهم بصفة عامة في Boost.Algorithm
لأكثر من 15 عامًا) ، ورئيس فريق العمل المعني بالمكتبات في اللجنة توحيد C ++ والمطور الرئيسي لـ libc ++ (المكتبة القياسية لـ LLVM). أسطورة حية وشخص كتب ببراعة في C ++ عندما نصف من يقرأ هذا النص لم يولد بعد.
سيأتي مارشال مع تقرير "تصلب مكتبة القوالب القياسية لـ C ++" ، والجوهر هو هذا: بما أن المكتبة القياسية يستخدمها الجميع على التوالي ، فيجب أن تكون مكتوبة جيدًا وألا تنقطع في أي مكان. يكرس التقرير لمناقشة التقنيات والأدوات التي تجعل libc ++ من LLVM تفي بهذه المتطلبات: تصحيح الأخطاء واختبار الأجنحة والتغطية والتحليل الساكن والديناميكي. بالطبع ، هذا التقرير ليس فقط لمطوري LLVM ، بل يمكن للجميع استخلاص أفكارهم منه واستخلاص استنتاجاتهم.
درس برايس أدلشتاين للباخ سي ++ أقل قليلاً من مارشال ، لكن لديه شيء يفاجئه. إنه أحد القادة العالميين في مجتمع C ++. نشاطه الاجتماعي هو أن برايس هو الآن مدير برنامج مؤتمرات C ++ الرئيسية - CppCon و C ++ Now ، رئيس مجموعة مستخدمي C ++ في سان فرانسيسكو و Silicon Valley. في لجنة التقييس ، يشارك في JTC1 / SC22 / WG21 ، وهو رئيس مجموعة دراسة الأدوات (SG15) وحاضنة تطور المكتبات (SG18) ، وفي C ++ 17 ، عمل على قائمة طويلة من الأشياء (الخوارزميات الموازية ، المنفذون ، العقود المستقبلية ، المرسلون / المستقبلون ، متعدد الأبعاد صفائف ، وحدات). من بين أمور أخرى ، يقود برايس فريق التطوير CUDA في NVIDIA ، في بعض الأحيان يساعد LLVMLinux والالتزام بـ Boost.
وصل برايس بمحاضرة حول "مكتبة التزامن C ++ 20" . منذ ظهور C ++ 11 ، مر أكثر من اثنتي عشرة سنة ، تغير العالم! في أيام C ++ 11 ، كانت المعالجات متعددة النواة ثابتة بالفعل ، لكن العدد الطبيعي للنوى كان اثنين أو أربعة. كل ما هو أكثر من عشرة ، مثل الأشخاص القدامى ، تم الإشارة إليه بكلمة "كثير". "اثنان" و "أربعة" و "كثيرون". من الطبيعي الآن الحصول على العشرات من الأهداف والتأخير في التزامن لملي ثانية كاملة. أصبح من الشائع وجود عشرات ومئات الخيوط ، وكلمة "كثير" تعني الآن "مئات الآلاف". قبل عشر سنوات ، كان من غير المحتمل أن يتخيل أحد بوضوح المشكلات الحالية المتمثلة في تعدد العمليات. باستخدام الأدوات التقليدية اليوم ، نواجه إما زمن انتقال مرتفع بشكل غير مقبول ، أو بمحتوى غير مقبول لمزامنة مؤشرات الترابط. تقدم مكتبة C ++ 20 حلولًا جديدة - بدايات خفيفة الوزن يمكنها العمل مع مئات الآلاف من الخيوط. std::atomic::wait
، std::atomic::notify_*
، std::atomic_ref
، std::counting_semaphore
، std::latch
، std::barrier
... تم بناء هذا التقرير std::atomic_ref
من الأمثلة التي سنتعلم من خلالها كيفية استخدام كل هذه الأدوات من أجل بناء تطبيق حديث يمكن تنفيذه بالتوازي على أي أجهزة تقريبًا ، بدءًا من وحدات المعالجة المركزية المدمجة ووحدات الخدمة ووحدات معالجة الرسومات الجديدة.
المتحدث التالي هو المطور الروسي الشهير أنطون بولوخين . معروف بالتقارير الخاصة بالمناطق التي تعتبر فيها C ++ أشياء لا غنى عنها وإضافات سيكون من الجيد امتلاكها في C ++. ممثل روسيا في المنظمة الدولية للتوحيد القياسي في الاجتماعات الدولية لمجموعة العمل المعنية بالتوحيد القياسي C ++ ، مؤلف العديد من المقترحات المقبولة لمعايير لغة C ++. استعدادًا للمؤتمر السابق ، نشرنا مقابلة معه حول حبري . بشكل عام ، لقد تم بالفعل مناقشة موضوع مشاركة الروس في اللجنة على نطاق واسع حول هابري وفي كل مكان (انظر ، حتى كتب ياندكس عن هذا المنشور في VK) ، ودعونا لا نفتح هذا الموضوع الآن. يمكنك الذهاب إلى stdcpp.ru ومشاهدة قائمة الممثلين ، والآن هي: أنتون Polukhin ، أنتون Bikineev وألكسندر فوكين. أنتون أيضًا مؤلف العديد من مكتبات Boost: TypeIndex ، DLL ، Stacktrace ، تشارك بنشاط في دعم Any ، Conversion ، LexicalCast ، Variant. وقد كتب كتاب تطوير تطبيقات Boost C ++ والإصدار الثاني.
هذه المرة ، يصل Anton مع تقرير "C ++ Taxi Tricks" (يُطلق على التقرير بهذه الطريقة ، بوضوح ، لأن Anton يعمل في Yandex.Taxi). يتمثل جوهر الحيل في كيفية كتابة حلول معروفة على نحو جميل وفعال - على سبيل المثال ، من Pimpl يمكنك التخلص من التخصيص الديناميكي وربط ذاكرة التخزين المؤقت.
دعونا نخفف قائمتنا مع شخص لا يعمل في اللجنة. تحية Andrei Davydov من JetBrains - كان يعمل في فريق ReSharper C ++ لمدة ثلاث سنوات حتى الآن ، وكثير منا يستخدمون نتائج عمله كل يوم. في التقرير ، سوف يتحدث Andrei عن كيفية تأثير مظهر الوحدات النمطية على جوهر لغة C ++: إذا كان المترجم يعمل في وقت سابق مع وحدات الترجمة واحدة تلو الأخرى ، ثم مع ظهور الوحدات النمطية تغيرت قواعد اللعبة. سيتم مناقشة المواضيع التالية:
- ما هو الكيان القابل للوصول وكيف يختلف عن المرئي ؛
- كيف تؤثر الوحدات على ADL ؛
- ما إذا كانت الكيانات التي لها صلة داخلية يمكن أن تتسرب إلى وحدة أخرى ؛
- يمكن استيراد فئة في نفس الوقت كاملة ، وغير مكتملة ؛
- ماذا سيحدث للوظائف المضمنة في عالم معياري.
لاحظ أن هذا ليس تقريرًا تمهيديًا للوحدات النمطية للمبتدئين. من المتوقع أن يصبح الطلاب على دراية بمبادئ الوحدات وفهم سبب الحاجة إليها على الإطلاق. والخبر السار هو ، أولاً ، فهم هذا الأمر بسيط للغاية (فقط جوجل بعض المقالات الجيدة) ، وثانيًا ، سيشهد C ++ Russia هذا نقاشًا تمهيديًا آخر مقترنًا حول وحدات من ديميتري كوزيفنيكوف (وهو يعمل أيضًا في JetBrains).
بقية البرنامج
من الواضح تمامًا أنه من المستحيل إخبار حوالي 30 شخصًا وتقاريرهم الثلاثين في إعلان قصير بعد Habré. لذلك ، يتم وصف كل هذا بمزيد من التفصيل على الموقع الرسمي للمؤتمر . من المهم الإشارة إلى أن البرنامج مستمر في التغيير: على سبيل المثال ، حيث يواصل مقدمو العروض ، بمساعدة لجنة البرنامج ، تحسين تقاريرهم ، يتم تحديث أوصافهم أيضًا. أقرب إلى 31 أكتوبر ، سيبدو كل شيء مختلفًا بعض الشيء ، لكن المعنى العام سيبقى كما هو.
التقارير ليست كل شيء!
بالطبع ، ليس المؤتمر تقارير فحسب ، بل هو بحر من التواصل. هذا هو المكان الذي يختلف فيه الحضور المباشر عن البث عبر الإنترنت ، والذي نخطط أيضًا للقيام به. ألقِ نظرة على القائمة أعلاه - مع معظم هؤلاء الأشخاص الذين أود مقابلتهم ومناقشة شيء مهم. لدينا مثل هذه الفرصة: بعد نهاية التقرير ، يذهب الجميع إلى منطقة المناقشة والمحادثات هناك لفترة كافية. في نهاية اليوم ، يتم تنظيم ما يسمى بجلسات BOF (شيء يشبه اجتماع المائدة المستديرة ، ولكن الجميع يشاركون فقط).
يمكنك فقط مقابلة أشخاص مثيرين للاهتمام من المجتمع الذين حضروا أيضًا ، ولكن بدون تقرير. يمكنك العثور على الشركات ذات الاهتمام ، وتعلم شيء من ممثليها والمشاركة في المسابقات. ستكون هناك أنشطة جانبية مختلفة نفكر فيها الآن. باختصار ، كل ما يمكن تصوره عن مؤتمر كبير.
فصول ماجستير
بالإضافة إلى برنامج المؤتمر الرئيسي ، سيكون هناك أيضًا فصول دراسية رئيسية (المشاركة فيها يتم إعدادها وتدفع بشكل منفصل). سيتم عقدها في اليوم السابق للمؤتمر ، وعلى عكس التقارير ، سوف تستغرق عدة ساعات على الأقل. يمكن الاطلاع على الأوصاف التفصيلية وشروط المشاركة في الفصول الرئيسية على الموقع الرسمي .
انطون Polukhin - "ذكيا والحديثة C ++"
أنطون مطور روسي مشهور ، تحدثنا عنه أعلى قليلاً في هذا المقال. تتيح له خبرته كمؤلف لمكتبات Boost ، والمشارك ولجنة التوحيد القياسي ، فضلاً عن الممارسة الواسعة ، أن يكتب رمز C ++ ذكي مؤهل ويعلم الآخرين القيام بذلك.
في أي قاعدة رمز كبيرة ، يمكنك العثور على أجزاء من رمز غير مفهومة تماما. وكقاعدة عامة ، تتم كتابة هذا الرمز للفوز قليلاً في أداء التطبيق ... وكقاعدة عامة ، لا يلزم مثل هذا الرمز من حيث المبدأ ، لأنه لا يحسن ما هو مطلوب ، وليس في المكان المطلوب ، وليس كما ينبغي .
سيبدأ الفصل الرئيسي بمثال صغير ، حيث ستواجه جميع الأخطاء الشائعة للتحسين المبكر. بعد ذلك ، ستنتقل من الأساسيات وتفكر في أشياء مثل الخوارزميات وحاويات المكتبة القياسية (وليس فقط المعيار) ، ودلالات الحركة وسلوكها غير المتوقع ، وتعدد العمليات. هذه ورشة عملية بالكامل تستخدم Google Benchmark والمهام التي تبدو وكأنها مهام لتحسين كود معين.
راينر جريم - "البرمجة المدمجة مع C ++ الحديثة"
راينر جريم هو خبير برمجي بمجال C ++ ، ومطور برامج بيثون من ألمانيا. جزءا لا يتجزأ من واحدة من المجالات الرئيسية لتطبيق C ++ الحديثة. يسمح لك C ++ بالاتصال مباشرة بالأجهزة ويوفر تجريدات لإنشاء أنظمة معقدة. في C ++ الحديثة ، هناك الكثير من الأشياء التي تساعد في تضمينها. هذه هي أشياء مثل دلالات الحركة ووظائف constexpr (لتحسين الأداء) ، والحرف الحرفية المحددة من قبل المستخدم وسمات الكتابة (للأنظمة التي يكون فيها الحد الأقصى من الأمان أمرًا بالغ الأهمية) ومؤشرات ذكية و std::array
(لفوضى أقل مع الموارد ).
يعلمك هذا الفصل الرئيسي كيفية استخدام ميزات C ++ بشكل أفضل فيما يتعلق المضمنة. على وجه الخصوص ، يقدم إجابات لمجموعة واسعة من الأسئلة حول القيود الفريدة لهذه الأنظمة. يتم تدريس هذه الورشة باللغة الإنجليزية.
بافيل فيلونوف - "التكامل المستمر ل C ++ - المطور"
يعتقد بافيل فيلونوف أن عملية التطوير لا ينبغي أن تنتهي بعد الالتزام ، وبالتالي ، فإنه سيقدم درجة الماجستير في التكامل المستمر. الغرض من فئة الماجستير هو اتخاذ الخطوة التالية نحو التكامل المستمر (CI ، المهندس. التكامل المستمر) وأتمتة دقة التبعية ، وتجميع واختبار الوحدة لجميع المنصات المستهدفة. نتيجةً لذلك ، سيتمكن المشاركون من نشر جميع البنية التحتية اللازمة بشكل كامل لـ CI وإعداد مشروع C ++ للتجميع التلقائي واختبار الوحدة.
ما التالي؟
ثم عليك أن تأتي إلى C ++ Russia 2019 Piter! سيعقد المؤتمر 31 أكتوبر - 1 نوفمبر في سان بطرسبرج. يمكن شراء التذاكر على الموقع الرسمي . يمكنك أيضًا التعرف بشكل تفصيلي على الإصدار الحالي من البرنامج (أذكر أنه يستمر في التغيير).
ملاحظة مهمة حول الأسعار والخصومات. يمكن لنظام التذاكر إصدار التذاكر من أربعة أنواع: الأكاديمية والشخصية والمعيارية وعبر الإنترنت. لماذا هو مهم: إذا قمت بشراء تذاكر بنفسك ، فسوف يكلف الأمر أرخص بكثير من تذكرة للشركة. وإذا كنت طالبًا أو طالب دراسات عليا أو مدرسًا (وهناك مستند مناسب للتأكيد) ، فسيكون الخصم مثيرًا للإعجاب بشكل خاص. بالطبع ، يجب قراءة الشروط التفصيلية على الموقع - كل ما كتب أعلاه كان للعلم فقط.
تحسبا ل C ++ Russia 2019 Piter ، يمكنك مشاهدة التسجيلات من مؤتمرين سابقين عقدا هذا الربيع في موسكو ونوفوسيبيرسك ، بشكل عام ، جميع السجلات في السنوات الماضية موجودة بدقة على قناتنا على YouTube . وبالتالي ، يمكنك تقييم جودة التقارير بشكل مرئي.
قابلني في C ++ Russia 2019 Piter!