مرحبا بالجميع!
في الآونة الأخيرة ، تم عقد C ++ سيبيريا 2019 القادم في نوفوسيبيرسك ، وكان للمؤتمر جو مريح والعديد من التقارير الجيدة. يتم الآن إعداد تسجيلات الفيديو للتقارير للنشر. انتهزت هذه الفرصة للتحدث مع اثنين من المتحدثين المتكررين الذين نادراً ما يغيبون عن المؤتمرات وتقديم تقارير ممتازة دائماً: أنتون بولوخين أنتوشكا وبافيل فيلونوف.
أنطون هو ممثل روسيا في ISO في الاجتماعات الدولية لمجموعة عمل توحيد C ++ ، ومؤلف العديد من المقترحات المقبولة لمعيار لغة C ++ ، ومكتبات Boost ، وكتاب Boost C ++ لتطوير تطوير التطبيقات.
Pavel هو مطور وباحث في Kaspersky Lab ، ويشارك في تطبيق أساليب التعلم الآلي لضمان أمن الأنظمة الفيزيائية الإلكترونية ، ويشارك في التدريس. أثناء انتظار الفيديو من المؤتمر ، أقترح عليك قراءة نسخة محادثتنا.

سيرجي: مرحبا بالجميع! هذا هو سيرجي بلاتونوف ، نحن الآن في مؤتمر سي + سيبيريا. نتحدث اليوم مع المتحدثين العاديين لدينا - أنطون بولوخين وبافيل فيلونوف. كيف حالك
بافل: عظيم! عدنا في نوفوسيبيرسك.
سيرجي: الآن نحن نجلس أمام غابات سيبيريا.
بافيل: منظر جميل ، أناس لطيفون ، مواضيع شيقة للغاية.
انطون: وفي هذه اللحظة يكون الجو أكثر دفئًا من موسكو.
سيرجي: أود أن أتحدث إليكم عن C ++ اليوم ، ولكن يبدو غريباً في مؤتمر C ++. عن أشياء مختلفة. على سبيل المثال ، أنا مهتم جدًا بالسبب وراء حضوركم المؤتمر من موسكو إلى نوفوسيبيرسك ، وهذه ليست المرة الأولى.
بافيل: بنفسي ، أستطيع أن أقول إن لديّ سبب رئيسي - أود حقاً أن أخبر شخصًا ما شيئًا ما. لا يمكنني الاحتفاظ بها لنفسي. عندما أتعلم شيئًا جديدًا مثيرًا للاهتمام ، من ناحية ، أشك دائمًا في ما إذا كان جيدًا وممتعًا حقًا ، ولست بحاجة للذهاب لإخبار الناس ومعرفة كيف سيكون رد فعلهم على ذلك - ما إذا كانوا سيبصقون أو يطلبون منهم العودة مرة أخرى. واستنادا إلى حقيقة أنهم لا يبصقون ، فإنهم لا يرمون الطماطم ، وربما يحب الناس الأشياء التي تنفجر معي. أريد الاستماع ومناقشتها. بالإضافة إلى ذلك ، من دواعي سروري دائمًا الركوب. المرة الأولى التي كنت فيها في نوفوسيبيرسك كانت في مؤتمر سي + سيبيريا ، والمرة الثانية أيضًا. تماما مثل هذا ، لن أصل إلى هنا.
أنتون: من الممتع دائمًا السفر إلى مدن أخرى. إنه لأمر رائع في نوفوسيبيرسك ، إنه أكثر دفئًا هنا من موسكو. الثلج الرطب لا يصب على قشرة الرقبة. إيجابيات واحدة!
سيرجي: بالطبع ، أنا مخادع وأسأل هذا السؤال لسبب ما. لديّ ذكريات عن مجموعة العمل 21 وكيف ، في رأيي ، بدا الأمر. أنا مهتم بالاستماع إلى الرجل الذي فعل ذلك بالفعل. كيف حدث أن روسيا ممثلة الآن في اللجنة؟
انطون: حدث ذلك في روسيا C ++ في سان بطرسبرغ. أتذكر أنني ذهبت إلى المصعد مع زوجتي ، كان غور نيشانوف ( Twitter ) يقف بالفعل هناك ، وأدركت أن هذه طريقة رائعة لاكتشاف كيفية الانضمام إلى لجنة التقييس الدولية. في الواقع ، سألته عن هذا. وغور مثل هذا: "أنت تعرف ، اليوم أنت بعيد عن أول من طرح هذا السؤال بالنسبة لي. اقترب منك الناس من ياندكس ". أجبني أنني كنت أعمل لفترة قصيرة في ياندكس ، وطلبت أن أصف كيف بدا هؤلاء الناس - سأقترب منهم أيضًا. قال لي غور كل شيء. ذهبت إلى الناس الذين وصفهم. واتضح حقًا أن Yandex كانت ستنشئ نوعًا من مجموعة العمل لمواكبة C ++ وتمثيل مصالح المطورين الروس في لجنة دولية. تم إنشاء المجموعة. لا يوجد موظفو Yandex فقط ، بل هناك موظفون في شركات أخرى.
بافيل: الآن ، من Kaspersky Lab ، يعمل Anton Bikineev أيضًا كجزء من المجموعة. اليوم ، لسوء الحظ ، فهو ليس معنا.
أنتون: بالمناسبة ، يقوم أنتون بعمل رائع للغاية - فقد صعد إلى داخل المترجم بالأذرع والساقين ويحاول تنفيذ أحد مقترحاتنا. لديه حتى نموذج العمل أكثر أو أقل.
بافيل: بالمناسبة ، يشكو من أنك تكتب مقترحات بشكل أسرع من إدارتها لتنفيذها في المجمع.
انطون: نعم هو كذلك.
سيرجي: هذا هو ، أنطون بيكينييف يتصرف هنا كمجموعة أساسية من مجموعة العمل لدينا؟ من الجيد أن نسمع أن المؤتمرات كان لها دور في ذلك. آمل أن يفهم الجميع مدى فائدة هذا الأمر ومثيرة للاهتمام. اتضح أنه ليس عليك العمل في ياندكس للدخول إلى مجموعة العمل؟
أنطون: بشكل عام ، ليس من الضروري أن تكون جزءًا من مجموعة عمل لتوصيل فكرتك إلى لجنة توحيد C ++ أو لتصبح جزءًا من المزايا الإضافية.
بافيل: يبدو أنه يمكنك فقط الذهاب إلى الموقع وترك اقتراحك.
انطون: نعم ، في https://stdcpp.ru . هناك يمكنك مشاركة الفكرة ومناقشة أفكار المشاركين الآخرين. هناك العديد من الأفكار ، ولكن لا توجد أيدي كافية لتولي كل شيء. لذلك ، إذا جاء شخص وبدأ في كتابة مسودات محددة على الأقل لبعض المقترحات للأفكار ، فسيصبح ذلك أسهل للجميع ، وستصل هذه الأفكار إلى اللجنة بسرعة.
بافيل: ما رأيك ، أنتون ، في أي اقتراح أو أي شيء آخر هو أكبر مساهمة لفريق العمل المعبر عنها؟
أنطون: لقد اتخذنا اتجاهًا لكل الانعكاسات الثابتة في الإيجابيات. كما أتذكر الآن: كان هناك اقتراح لجعل constexpr_vector
- فئة منفصلة لا يمكن استخدامها إلا في سياق constexpr. يخرج ديفيد (David Vandevoorde) ويتحدث عن هذا الشيء. القاعة كلها تصرخ بفرح ، دعونا نفعل ذلك. وهو مثل هذا: "لكننا نريد تكرار جميع الفصول في المكتبة القياسية من هذا القبيل؟ لا توجد طريقة أخرى. " "ربما constexpr_new?
"لا ، لا يعمل." وأنا مثل هذا: التحدي مقبول. وبعد ثلاثة أشهر ، صنعت أنا وساشا زايتسيف نموذجًا أوليًا يتيح std::vector
العمل في سياق constexpr. إنه يعمل بشكل مباشر ، على clang ، حتى في المحول البرمجي لم يكن لدي أي شيء. لقد أظهرنا ذلك لداود ، يقول: "آه! حسنا مثل هذا؟ لا ، أنت خدعت هنا. " اتفقنا يقول: "لا ، حسنًا ، بالطبع يمكنك ذلك. بالمناسبة ، لماذا لا ". بعد ذلك ، قام بإخراج الورقة مع constexpr_vector
وبدأ العمل حتى تتمكن جميع حاويات المكتبة القياسية من استخدام سياق constexpr ، والآن يوجد بالفعل الكثير من الناس هناك. نحن من مجموعة العمل افتقدنا بشكل أساسي جميع الخوارزميات مع constexpr ، لويس ديون يصنع الحاويات المفقودة مع constexpr ، وديفيد يجعل جوهر اللغة بمهارة يصنع نوعا من constexpr جديدًا.
سيرجي: هل هذا عن الموزعين؟
انطون: نعم. كانت هناك مشكلة في المخصصات.
سيرجي: عظيم! هذه تبدو وكأنها تغييرات كبيرة.
انطون: آخر 6 سنوات ، وسوف تظهر في المعيار ؛-)
بافيل: لا ، ربما ، لن يكون لدينا وقت لمسها في متناول أيدينا بهذه السرعة.
انطون: يجب أن تكون حاويات constexpr في المعيار العشرين. خوارزميات constexpr ضرب بالتأكيد.
بافيل: هذا ، بضع سنوات فقط؟
سيرجي: إذا بدأ 2019 الآن ، فسيكون المعيار 20 في مكان ما في عام 2020. حسنا ، نعم ، ربما بضع سنوات.
بافيل: بالإضافة إلى ذلك ، إذا كنت أتذكر بشكل صحيح ، فقد كان المترجمون دائمًا متخلفين مقارنةً بالكتاب العاديين ، والآن أرى غالبًا محاولات لتشغيل أول شيء على سبيل التجربة من خلال المترجم - ما تفعله أنتون هو ما تقوله. وبعد ذلك فقط أعتبر في شكل معايير.
سيرجي: قبل ذلك ، أتذكر أنه لا يزال هناك TR.
انطون: ولكن ألقيت لصالح TS. لقد تغير الكثير ، نعم :-)
سيرجي: هذا هو ، الآن في المجمعين الحديثين يمكنك أيضا توصيل مساحة الاسم؟
انطون: هناك الآن يتم ذلك مع مربعات الاختيار مع ملحقات للمترجم ، وهذا هو ، هناك Coroutines TS ، يمكنك تجربتها في Clang و Visual Studio . هناك وحدات TS ، وأنها ليست هي نفسها في كل مكان. هناك TSs على الاشياء المكتبة ، multithreading ، والشبكات.
سيرجي: لا يزال هذا هو جوهر اللغة مع المخصصات ، فهل تم تعيين هذا أيضًا بواسطة علامة منفصلة معينة؟
انطون: لن يتم منحها علم منفصل. ديفيد (David Vandevoorde) - أحد مطوري برامج التحويل البرمجي ، أحد مطوري الواجهة الأمامية لـ EDG ، لقد قام بتطبيقه. من المعتقد أن هذا على ما يرام ، إنه لا يكسر أي شيء ، لا نريد أشياء جديدة أخرى ، لا معنى لتجربة هنا ، كل شيء يعمل فقط. عظيم ، نحن نسحب.
سيرجي: رائع جدا.
بافيل: بالمناسبة ، العودة إلى موضوع المؤتمرات. أنتون ، أنت متحدث متكرر ، ليس فقط في C ++ Russia ، ولكن أيضًا تحضر CPP Con ، الاجتماع CPP ، CPP الآن ، ربما شيء آخر. هل يمكنك بطريقة ما المقارنة وقول ما تراه الفرق؟ هل هؤلاء الأشخاص هم نفس الأشخاص ، أو نفس الموضوعات ، أو هل تشعر أن الموضوع أو لغة العمل الخاصة بالمؤتمر تتغير ، اعتمادًا على كيفية تنقلك؟
انطون: من حيث المبدأ ، هناك شعور بأن هناك مطورين أقوياء في المؤتمرات في روسيا. يمكنك إخبارهم بموضوعات معقدة للغاية. حاولت أن أخبر عن موضوع صعب للغاية ، magic_get ، في مكان ما في مؤتمر آخر ، وأتذكر رجلاً توقف ، أثناء حديثي ، عن الاستجابة للمنبهات الخارجية. إنه يجلس فقط ولا يرمش. فكرت ، ربما يمكنني إدخال مزحة - لقد أدخلتها ، مازحة - حتى أنه لم يرمش. ثم حصل حولها. لكن من الأفضل معرفة مثل هذا المتشددين فقط هنا في مكان ما.
سيرجي: وفقط لأنتون بيكينييف . لقد استذكرنا القصة في وقت العشاء فقط ، عندما كنت تتحدث عن magic_get في أحد الاجتماعات.
بافيل: حضر أنتون هذا الاجتماع وسألك سؤالًا صعبًا لدرجة أنه تجاوز بوضوح ما قلته. يبدو أن البحث في قائمة الأنواع ليس خطيًا ، ولكن بمساعدة البحث الثنائي. أجبته وسألته كيف عرفها على الإطلاق. ذكر أنتون أنه كان يقرأ مصادر magic_get ، الموجودة على GitHub ، طوال الليل قبل تقريرك ويحاول معرفة كيفية عمله.
انطون: لدينا قصة غريبة قديمة مع انطون بيكينييف. لقد رأيت كيف أنه ارتكب بعض الالتزامات في Boost ، حتى قبل أن نعرف بعضنا البعض. وبعد ذلك ، رأيت أنه قدم طلب سحب في كل من Clang و constexpr. رأيت طلب السحب هذا ، ولسبب ما تذكرت الاسم في تلك اللحظة. ربما لأن المتأنق من Boost الالتزام بـ Clang رائع! ثم أتحدث في سي + + سيبيريا عن علامة 17 ، وحول إذا كان constexpr ، والصراخ يصرخ من الجمهور: "نعم ، لقد فعلت ذلك قليلاً في Clang." أنا مثل: "أنت أنت بيكينيف!"
سيرجي: سي ++ سيبيريا يربط.
بافيل: أيضًا ، إذا كنت أتذكر بشكل صحيح ، فقد بدأنا في سيبيريا في إعداد أول تجارب على فصول رئيسية. في البداية حاولوا تجربتها لمعرفة ما إذا كان هذا التنسيق سيذهب أم لا. وكما توضح الممارسة الخاصة بالمؤتمرات 3-4 الأخيرة ، إذا عدت C ++ Russia ، يبدو لي أن التنسيق الجديد سار بشكل جيد للغاية. على سبيل المثال ، أتيحت لي الفرصة الآن ، ليس خلال 40 دقيقة ، لمحاولة تحريك بعض المواضيع ، ولكن بهدوء لمدة 6 ساعات لإخبار الناس بكل شيء أعتقد أنه ضروري. إذا كان الناس مستعدين ، أقول كل ما بوسعي ، حتى أكثر من ست ساعات.
انطون: حلقات العمل ممتعة. في بعض الأحيان يطرحون مثل هذه الأسئلة التي تعجبكم: "اللعنة ، لماذا؟" ولعدة أيام تحاول أن تفهم سبب عدم عمل ذلك على هذا المترجم المعين ، على هذا الكمبيوتر المحمول التعيس. وهناك نوع من الخطأ في المترجم أو أي شيء آخر. يبدو أنك أتيت إلى الفصل الرئيسي لمجرد إخبار شيء ما ، ولكن بدلاً من ذلك تحصل على تعليقات مفيدة تساعد على إصلاح مكان ما ، لتحسين شيء ما.
سيرجي: من وجهة نظر منظم المؤتمر ومنسق المجتمع ، سأقول إن ورش العمل مفيدة للغاية بالنسبة لي ، لأنه في بعض الأحيان يذهبون إليها ، ويحصلون على بعض المعارف الأساسية ويطورونها ويطبقونها ويعودون بها مع تقرير عنها. جاء إليّ العديد من الأشخاص وقالوا إنهم ذهبوا إلى صف رئيسي لأحدكم ، وكانوا مهتمين جدًا بالموضوع ، وقدموا تقريرهم الخاص.
بافيل: أنتون ، أتذكر أنك أيضًا مؤلف كتاب "Boost" ، والآن الإصدار الثاني قد انتهى بالفعل. قل لي كيف قررت أن تكتبها؟ على سبيل المثال ، ما زلت لن أتعهد بالتعبير عن أفكاري بهذا الشكل المعقد ، في رأيي.
أنطون: لقد كان شهرًا مزدحمًا في Boost ، كنت أتجادل مع شخص ما هناك ، ولعن بشخص ما وأقول ما يجب فعله خطأ. لقد أقنعوني ، ويبدو أنه أقنعني. وكان الناشر يبحث فقط عن أشخاص يكتبون كتابًا على Boost. يبدو أنهم نظروا في قائمة Boost البريدية ، وشاهدوا أكثر المشاركين نشاطًا وتحدثوا بثقة أكبر من أي شخص آخر ، واختاروني.
بافيل: كيف بدأت حتى المساهمة في Boost؟ هل كانت وظيفة أم مجرد هواية؟
انطون: كان هذا بسبب حقيقة أنني لم أفهم كيف يعمل Boost. استخدمنا دفعة في العمل. كان أحد أعمالي الأولى هو Boost ، ولم أكن أعرف حتى كيف تعمل هناك ، ولماذا تعمل هكذا.
بول: Boost عبارة عن مكتبة سحرية حتى الآن.
انطون: بدأت أنظر ، وفهمت ، وفي وقت ما أدركت فجأة أنه هنا في lexical_cast
يمكنك القيام بعمل أفضل. ثم كتبت إلى ذلك lexical_cast
، أليكسي من lexical_cast
، دعنا نطبق هذا التصحيح ، لكنه لم يجيبني. كتبت له اثنين أو ثلاثة بقع أخرى.
بافيل: إذا كنت أتذكر بشكل صحيح ، يجب أن تكون حازما في الترويج للبقع الخاصة بك.
انطون: بالطبع. مع المصدر المفتوح دائما. ونتيجة لذلك ، قال lexical_cast
على أنه lexical_cast
تمامًا الآن ، لديه الكثير lexical_cast
، وعرض عليه أن يصبح lexical_cast
لي. لقد سررت ووافقت. ثم Boost.Any ، Boost.Variant علقتني ببطء. في تلك اللحظة كتب بضع مكتباته ، Boost.TypeIndex ، Boost.Stacktrace ، والتي تم قبولها الآن كمعيار قياسي.
بافل: من أين تحصل على أفكار لميزات جديدة في المكتبات الجاهزة؟
انطون: بعض الأشياء ، على سبيل المثال ، Boost.DLL - كتب هذا الشخص إلى قائمة بريد Boost ، كما يقولون ، انظر ، ما مكتبة رائعة لدي ، إنها تقوم بالكثير من الأشياء المخيفة والمعقدة والمثيرة للاهتمام. نظرت إليها مثل هذا: "حسنًا ، نعم ، نعم ، نعم ، أوه ، ولكن أود ذلك!" لقد اتصلت بهذا المتأنق واقترحت أن أخرج قطعة منها للعمل مع الإضافات بشكل منفصل. لقد أخرجوها بشكل منفصل ، واتضح أن هذه القطعة دخلت Boost في وقت مبكر أكثر مما يفعل الرجل نفسه. مع Stacktrace ، في مرحلة ما أدركت أنه لا توجد آلية للحصول على Stacktrace. نعم ، في بعض الأحيان تصل لي ببطء. وكانت تلك هي اللحظة التي أدركت فيها أنه لا توجد طريقة للحصول على Stacktrace في الايجابيات.
بافل: يبدو أنه في عملين مختلفين كتبت مكتبة مماثلة مرتين من أجل طباعة آثار المكدس في الخريف.
أنطون: وهكذا أخذت ذلك ، جربته ، وألقيته على الناس من Boost ، قالوا لا ، لن يفعل ذلك. ثم حاولت مرتين أخريين ، وإحدى النسخ ، رتبت كل شيء وأخذت الجذر.
بافيل: لكن هل تستخدمها بطريقة ما في عملك؟
أنتون: نعم ، نحن في Yandex.Taxi نستخدم Boost.Stacktrace بنشاط شديد ، إنه لأمر جيد للغاية بنفس الإجراءات ، على سبيل المثال. هل لديك شيء مشترك - العمل مع JSON ، مثلا. يصل المستخدم في مرحلة ما إلى حقل JSON غير الموجود. مجرد رمي استثناء؟ حسنا ، في مكان ما فوقه سوف يمسك. بشكل عام ، المستخدم حيث كان يطلق عليه؟ هناك ، في كامل كود العمل مع JSON ، هل لدى المستخدم الحقل الدقيق الذي لم يصل إليه؟ في أي نقطة طلب ذلك؟ ويساعد Stacktrace تمامًا على فهم ما هو الخطأ وأين ، وأين عابث المستخدم.
بافل: غالبًا ما تبدأ الإصدارات التي تستخدمها في العمل بالتشتت مع ما هو مفتوح المصدر؟ أو هل تحاول باستمرار نقل الميزات جيئة وذهابا؟
انطون: أنا نقل الميزات جيئة وذهابا. بالطبع ، بإذن من القيادة. وسأقول أن هذا تفاعل مفيد للغاية. على سبيل المثال ، في Yandex.Taxi ، لاحظنا أن وظيفة toString () لـ Stacktrace مفقودة. في مقترح التقييس ، يتم وصفه في كل مكان ، لكنه ليس في Boost. على الرغم من حقيقة أنه يبدو لي أنها كانت هناك ، فقد مزقت اقتراح التوحيد الكامل من Boost. تمت الإضافة إلى Boost. الجميع سعداء
بافيل: بالمناسبة ، العودة إلى مجموعة العمل. ربما ، تذهب على الفور إلى الاجتماع التالي بعد سي + + سيبيريا؟
أنطون: نعم ، سأركب الطائرة صباح الغد ، 40 ساعة من الرحلة ، وفي نفس اليوم سأطير إلى كونا. على جدول أعمال الاجتماع ، يتعين على اللجنة بأكملها أن تقرر شكل C ++ 20. المحطة الأخيرة قبل C ++ 20 ستبقى فقط إصلاح الخلل. وحدات و coroutines هي على جدول الأعمال الآن.
بافيل: ميزتان مهمتان تدور حولهما مناقشات طويلة ومتحمسة.
انطون: كل شيء أكثر وضوحًا مع الوحدات النمطية ، يبدو أنها مقبولة ، لكن مع coroutines ، الأمر غير مفهوم تمامًا ، لأنه فقط في هذا الاجتماع ظهر الاقتراح الثالث المتنافس على coroutines. الأمر مختلف تمامًا ومختلف تمامًا عما هو موجود في Coroutines TS ، وهناك نقاط قوية. هناك بالطبع نقاط ضعف. ليس من الواضح كيف ستذهب على الإطلاق. وكيف يتم ضبط الناس عموما إلى coroutines.
بافل: ما هي خططك ل C ++ روسيا القادمة؟ هل تريد تقرير منك؟
انطون: نعم بالتأكيد. سوف أتوصل لشيء ما. ربما عن بيلوراما.
سيرجي: حسنًا ، شكرًا جزيلًا يا أصدقاء! لن أعيقك بعد الآن. وداعا للجميع! نراكم في C ++ روسيا .
بضع كلمات عن التدريبات في مؤتمر C ++ Russia
كما قال بافل بشكل صحيح في هذه المقابلة ، فإن التدريبات ودروس الماجستير لها ميزة لا يمكن إنكارها: لدى المشرف الفرصة لإحضار الموضوع بأكمله في غضون ساعات قليلة ، بدلاً من محاولة الاحتفاظ به في غضون 50 دقيقة كما هو الحال في تقرير منتظم.
ببطء ، أصبحت فصول الماجستير تقليدا. احتفظنا بها لأول مرة في عام 2017 ، ثم قمنا باختبارها في سي ++ سيبيريا. هذا العام سيكون هناك ثلاثة فصول رئيسية. لقد قابلت بالفعل قادة اثنين منهم في هذه المقابلة.
الفصل الدراسي الرئيسي هو ست ساعات ، يجمع بين المعلومات النظرية والتمارين العملية. يوفر عدد صغير من المشاركين العمل الفردي مع كل منهم. هذا هو ، أولاً وقبل كل شيء ، بالطبع. لذلك سوف تتطلب جميع الفئات الرئيسية جهاز كمبيوتر محمول مع برنامج التحويل البرمجي C ++ الحديث المثبت.
تم عرض ثلاثة فصول رئيسية للاختيار من بينها: "البرمجة الوظيفية التطبيقية في C ++" سيتم إجراؤها بواسطة Ivan Čukić ، و "التكامل المستمر لمطور C ++" و "Smart and Modern C ++" سيكون عمل المطورين لدينا ، Pavel Filonov و Anton Polukhin.
فئة إيفان الرئيسية ليست لمستوى الدخول ، ستكون مناسبة للمتوسطين الذين يرغبون في فتح أبواب الإدراك بشكل أوسع. إيفان باحث في جامعة بلغراد ، وحافظ على نشاطاتها الفنية ، و Contour daemon ، و Lancelot ، ومشاريع KDE الأخرى. سيكون ، كما يمكنك فهم ، حول البرمجة الوظيفية. فقط في حالة ما ، ينصح المشاركون بالحصول على أحدث إصدارات GCC و Clang. بعد قليل سنضع صورة فيرتثلبوإكس مع كل ما تحتاجه. سيتم تغطية المواضيع التالية في الفصل الرئيسي: هي STL بعيدة عن البرمجة الوظيفية ، ما هي الكائنات الوظيفية ، std :: invoke و monads ، monads ، monads. وبعض أكثر monads.
أنت على دراية بهذا الباحث المطور في Kaspersky Lab Pavel Filonov . سيدعو المشاركين لبناء CI بهم مع كونان و ترافيس. سوف يشرح بافيل أيضًا طريقة الدمج المستمر ، وفي الجزء العملي سوف يعلمك حل المشكلات باستخدام أمثلة لمشروع / عمل منزلي على المصدر المفتوح ومشروع عامل برمز مصدر مغلق.
بطبيعة الحال ، يجب أن تكون قادرًا على البرمجة في C ++ ، إحضار كمبيوتر محمول مع أي نظام تشغيل ، أحد المجمعين الرئيسيين ، cmake طازجة (تحتاج إلى فهم بناء جملة CMakeLists.txt) ، git ، python 3 و pip3 ومجموعة من الحسابات. مزيد من التفاصيل حول هذا في الوصف على الموقع .
وأخيرًا ، يتم تكريس فئة رئيسية من antoshkka لمهارات التحسين المناسبة. في الحال ، أذكرك: إنه أحد كبار مطوري خدمة Yandex.Taxi ، وممثل WP 21 في الاجتماعات الدولية للجنة توحيد C ++ ، ومؤلف المقترحات المقبولة لمعيار اللغة ، ومطور Boost ، إلخ. سيناقش Anton أمثلة مع أخطاء متكررة من التحسين السابق لأوانه ، ثم سينظر المشاركون في خوارزميات وتعقيدات المكتبة القياسية ، والحاويات مع الميزات ، ونقل الدلالات وسلوكها غير المتوقع ، وتعدد الإصدارات. نظرًا لأن الدورة التدريبية عملية ، سيتم التحقيق في جميع الموضوعات بشكل تجريبي باستخدام مكتبة C ++ لمعايير google المرجعية. ستحتاج إلى الدورة التدريبية فقط إلى معرفة C ++ الأساسية وأحدث برنامج التحويل البرمجي بدعم C ++ 11.
كل ما سبق هو بالطبع مجرد مرجع موجز للرجوع اليها. المصدر الحقيقي الوحيد للحقيقة هو موقع المؤتمر ، حيث يتم تفصيل كل شيء بوضوح. على سبيل المثال ، يسرد بوضوح البرنامج الضروري على الكمبيوتر المحمول مع إصداراته.
سيعقد مؤتمر C ++ روسيا في 19-20 أبريل 2019 في موسكو. يمكن شراء التذاكر على الموقع الرسمي . مهم: من 1 مارس ، سوف ترتفع أسعار التذاكر. إذا كنت ترغب في الشراء بأسعار فبراير ، فيجب عليك فعل ذلك الآن.