Percakapan di C ++: WP 21, Boost, Konferensi

Halo semuanya!


Baru-baru ini, C ++ Siberia 2019 berikutnya diadakan di Novosibirsk. Konferensi ini memiliki suasana yang nyaman dan banyak laporan bagus. Rekaman video dari laporan sekarang sedang disiapkan untuk publikasi. Saya mengambil kesempatan ini untuk berbicara dengan dua pembicara kita yang sering tidak menghadiri konferensi dan selalu membuat laporan yang sangat baik: Anton Polukhin antoshkka dan Pavel Filonov.


Anton adalah perwakilan Rusia dalam ISO pada pertemuan internasional kelompok kerja standardisasi C ++, penulis beberapa proposal yang diterima untuk standar bahasa C ++, Boost libraries, dan Boost C ++ Application Development Cookbook.


Pavel adalah pengembang dan peneliti di Kaspersky Lab. Ia terlibat dalam penerapan metode pembelajaran mesin untuk memastikan keamanan sistem cyber-fisik, dan terlibat dalam pengajaran. Sambil menunggu video dari konferensi, saya sarankan Anda membaca transkrip percakapan kami.



Sergey: Halo semuanya! Ini adalah Sergey Platonov, kita sekarang berada di konferensi C ++ Siberia. Hari ini kita berbicara dengan pembicara reguler kami - Anton Polukhin dan Pavel Filonov. Apa kabar


Pavel: Hebat! Kami kembali di Novosibirsk.


Sergey: Sekarang kita duduk tepat menghadap hutan Siberia.


Pavel: Pemandangan indah, orang-orang baik, topik yang sangat menarik.


Anton: Dan saat ini di sini lebih hangat daripada di Moskow.


Sergey: Saya ingin berbicara dengan Anda tentang C ++ hari ini, betapapun anehnya terdengar di konferensi C ++. Tentang berbagai hal. Sebagai contoh, saya sangat tertarik pada mengapa Anda datang ke konferensi dari Moskow ke Novosibirsk, dan ini bukan pertama kalinya.


Pavel: Bagi saya sendiri, saya dapat mengatakan bahwa saya memiliki alasan utama - saya sangat suka memberi tahu seseorang tentang sesuatu. Saya tidak bisa menyimpannya untuk diri saya sendiri. Ketika saya belajar tentang beberapa hal baru yang menarik, di satu sisi, saya selalu ragu apakah itu benar-benar bagus, menarik, saya perlu memberitahu orang-orang dan melihat bagaimana mereka akan bereaksi terhadap ini - apakah mereka akan meludah atau meminta mereka untuk datang lagi. Dan menilai dari fakta bahwa mereka tidak meludah, mereka tidak melempar tomat, orang mungkin menyukai hal-hal yang penuh dengan saya. Saya ingin mendengarkan dan mendiskusikannya. Selain itu, selalu menyenangkan untuk berkendara. Pertama kali saya berada di Novosibirsk adalah pada konferensi C ++ Siberia, dan yang kedua juga di sana. Sama seperti itu, saya tidak akan sampai di sini.


Anton: Selalu menarik untuk bepergian ke kota lain. Luar biasa di Novosibirsk, di sini lebih hangat daripada di Moskow. Salju yang basah tidak mengguyur tengkuk leher. Satu plus!


Sergey: Tentu saja, saya tidak jujur ​​dan menanyakan pertanyaan ini karena suatu alasan. Saya memiliki ingatan tentang kelompok kerja 21 dan bagaimana, menurut pendapat saya, hal itu muncul. Saya tertarik mendengarkan pria yang sebenarnya melakukannya. Bagaimana mungkin Rusia sekarang terwakili dalam komite?


Anton: Itu terjadi di C ++ Rusia di St. Petersburg. Saya ingat bahwa saya pergi ke lift bersama istri saya, Gor Nishanov ( Twitter ) sudah berdiri di sana, saya menyadari bahwa ini adalah cara yang bagus untuk mencari tahu bagaimana masuk ke komite standardisasi internasional. Sebenarnya, saya bertanya kepadanya tentang ini. Dan Gore seperti ini: “Kamu tahu, hari ini kamu jauh dari yang pertama untuk mengajukan pertanyaan ini untukku. Orang-orang dari Yandex mendekati Anda. " Saya menjawab bahwa saya telah bekerja untuk waktu yang singkat di Yandex, dan meminta untuk menggambarkan bagaimana penampilan orang-orang ini - saya akan mendekati mereka juga. Gore memberitahuku segalanya. Saya pergi ke orang-orang yang diuraikannya. Dan ternyata Yandex akan membuat semacam kelompok kerja untuk mengikuti perkembangan C ++ dan mewakili kepentingan pengembang Rusia dalam sebuah komite internasional. Grup telah dibuat. Tidak hanya karyawan Yandex, ada karyawan perusahaan lain.


Pavel: Sekarang, dari Lab Kaspersky sebagai anggota grup, Anton Bikineev juga bekerja di sana. Sayangnya, hari ini dia tidak bersama kita.


Anton: Omong-omong, Anton melakukan hal yang sangat keren - dia naik ke interior kompiler dengan tangan dan kaki dan mencoba menerapkan salah satu proposal kami. Dia bahkan memiliki prototipe yang kurang lebih berfungsi.


Pavel: Ngomong-ngomong, dia mengeluh tentang Anda bahwa Anda menulis proposal lebih cepat daripada yang dia implementasikan dalam kompiler.


Anton: Ya, benar.


Sergey: Ya , Anton Bikineev bertindak di sini sebagai kelompok inti dari WG kami yang bekerja? Adalah baik untuk mendengar bahwa konferensi memiliki andil dalam hal ini. Saya harap semua orang mengerti betapa bermanfaat dan menariknya hal ini. Ternyata Anda tidak perlu bekerja di Yandex untuk masuk ke kelompok kerja?


Anton: Secara umum, tidak perlu menjadi bagian dari kelompok kerja agar ide Anda dibawa ke komite standardisasi C ++ atau untuk itu menjadi bagian dari nilai tambah.


Pavel: Sepertinya Anda bisa langsung pergi ke situs dan meninggalkan saran Anda.


Anton: Ya, di https://stdcpp.ru . Di sana Anda dapat berbagi ide, mendiskusikan ide-ide peserta lain. Ada banyak ide, tetapi tidak cukup tangan untuk melakukan semuanya. Karena itu, jika seseorang datang dan mulai menulis draft spesifik setidaknya beberapa proposal untuk ide, maka itu akan menjadi lebih mudah bagi semua orang, dan ide-ide ini akan dengan cepat sampai ke panitia.


Pavel: Bagaimana menurut Anda, Anton, di mana proposal atau sesuatu yang lain merupakan kontribusi terbesar dari kelompok kerja yang diungkapkan?


Anton: Kami membuat arahan untuk semua refleksi statis dalam pro. Seperti yang saya ingat sekarang: ada proposal untuk membuat constexpr_vector - kelas terpisah yang hanya dapat digunakan dalam konteks constexpr. David keluar (David Vandevoorde) dan berbicara tentang hal ini. Seluruh aula menjerit riang, mari kita lakukan. Dan dia seperti ini: “Tapi kami ingin menduplikasi semua kelas di perpustakaan standar seperti itu? Tidak ada jalan lain. ” “Mungkin constexpr_new? "" Tidak, itu tidak berhasil. " Dan saya seperti ini: tantangan diterima. Dan tiga bulan kemudian, saya dan Sasha Zaitsev membuat prototipe yang memungkinkan std::vector untuk bekerja dalam konteks constexpr. Ini bekerja secara langsung, pada dentang, bahkan dalam kompiler saya tidak harus memainkan apa pun. Kami menunjukkannya kepada David, ia berkata, “Ah! Baik seperti itu? Tidak, kamu curang di sini. " Kami sepakat. Dia berkata, “Tidak, well, tentu saja Anda bisa. Ngomong-ngomong, kenapa tidak. ” Setelah itu, ia membuang kertas dengan constexpr_vector dan mulai bekerja sehingga semua kontainer dari perpustakaan standar dapat menggunakan konteks constexpr. Sekarang sudah ada banyak orang di sana. Kami dari kelompok kerja pada dasarnya melewatkan semua algoritme dengan constexpr, Louis Dion membuat wadah terjawab dengan constexpr, dan David membuat inti bahasa dengan terampil membuat semacam constexpr baru.


Sergey: Apakah ini tentang pengalokasi?


Anton: Ya. Ada masalah dalam pengalokasian.


Sergey: Luar biasa! Ini sepertinya perubahan besar.


Anton: 6 tahun lagi, dan mereka akan muncul dalam standar ;-)


Pavel: Tidak, mungkin, kita tidak akan punya waktu untuk menyentuh mereka dengan cepat.


Anton: wadah constexpr harus dalam standar kedua puluh. Algoritma constexpr pasti terkena.


Pavel: Ya , baru beberapa tahun?


Sergey: Jika 2019 telah dimulai sekarang, maka standar ke-20 akan berada di suatu tempat di tahun 2020. Ya, mungkin beberapa tahun.


Pavel: Selain itu, jika saya ingat dengan benar, kompiler selalu tertinggal dibandingkan dengan penulis standar, sekarang saya sering melihat upaya untuk pertama menjalankan sesuatu sebagai percobaan melalui kompiler - apa yang dilakukan Anton adalah apa yang Anda katakan. Dan hanya kemudian mengambilnya dalam bentuk standar.


Sergey: Sebelumnya, saya ingat, masih ada TR.


Anton: Tapi mereka dilemparkan demi TS. Banyak yang telah berubah, ya :-)


Sergey: Artinya, sekarang dalam kompiler modern Anda juga dapat menghubungkan ts namespace?


Anton: Di sana sekarang dilakukan dengan kotak centang dengan ekstensi ke kompiler, yaitu, ada Coroutines TS, Anda dapat mencobanya di Dentang dan Visual Studio . Ada modul TS, dan mereka tidak sama di mana-mana. Ada TS pada hal-hal perpustakaan, multithreading, jaringan.


Sergey: Ini masih inti dari bahasa dengan pengalokasi, apakah ini juga ditetapkan oleh bendera terpisah tertentu?


Anton: Tidak akan diberi bendera terpisah. David (David Vandevoorde) - salah satu pengembang kompiler, salah satu pengembang front-end EDG, ia baru saja mengimplementasikannya. Diyakini bahwa ini baik-baik saja, tidak merusak apa pun, kami tidak ingin yang baru, ada yang tidak ada artinya untuk bereksperimen di sini, semuanya hanya berfungsi. Hebat, kami menarik.


Sergey: Sangat keren.


Ngomong-ngomong, kembali ke topik konferensi. Anton, Anda sering menjadi pembicara tidak hanya di C ++ Rusia, tetapi juga menghadiri CPP Con, Rapat CPP, CPP Sekarang, mungkin sesuatu yang lain. Bisakah Anda membandingkan dan mengatakan apa yang Anda lihat perbedaannya? Apakah ini orang yang sama, topik yang sama, atau apakah itu terasa, tergantung pada bagaimana Anda bergerak, subjek atau bahasa kerja dari konferensi berubah?


Anton: Pada prinsipnya, dirasakan bahwa di konferensi-konferensi di Rusia ada pengembang yang sangat kuat. Anda dapat memberi tahu mereka topik yang sangat kompleks. Saya mencoba menceritakan topik yang sangat sulit, magic_get, di suatu tempat di konferensi lain, dan saya ingat seorang pria yang, ketika saya berbicara, berhenti merespons rangsangan eksternal. Dia hanya duduk dan tidak berkedip. Saya pikir, mungkin saya bisa memasukkan lelucon - saya memasukkannya, bercanda - dia bahkan tidak berkedip. Lalu dia berkeliling. Tapi mungkin lebih baik mengatakannya hanya di suatu tempat.


Sergey: Dan hanya untuk Anton Bikineev . Hanya saja kami mengingat cerita itu hanya pada waktu makan malam, ketika Anda berbicara tentang magic_get di salah satu pertemuan.


Pavel: Anton menghadiri pertemuan ini dan mengajukan pertanyaan yang sangat sulit sehingga dia dengan jelas melampaui apa yang Anda katakan. Tampaknya pencarian dalam daftar jenis tidak linier, tetapi dengan bantuan pencarian biner. Anda menjawabnya dan bertanya bagaimana dia mengetahuinya sama sekali. Di mana Anton menyebutkan bahwa dia telah membaca sumber - sumber magic_get , yang ada di GitHub Anda, sepanjang malam sebelum laporan Anda dan mencoba mencari cara kerjanya.


Anton: Kami punya kisah aneh lama dengan Anton Bikineev. Saya melihat bagaimana dia membuat beberapa komitmen di Boost, bahkan sebelum kami saling kenal. Dan setelah itu, saya melihat bahwa dia membuat permintaan tarik di dentang dan constexpr. Saya melihat permintaan tarik ini, dan untuk beberapa alasan saya ingat nama itu pada saat itu. Mungkin karena pria dari Boost yang melakukan ke Clang itu hebat! Kemudian saya berbicara dalam bahasa C ++ Siberia tentang plus ke-17, tentang jika constexpr, dan pria itu berteriak dari penonton: “Ya, saya bahkan melakukan ini sedikit di dentang.” Saya seperti: "Kamu adalah Anton Bikineev!"


Sergey: C ++ Siberia terhubung.


Pavel: Juga, jika saya ingat dengan benar, di Siberia kami mulai membuat percobaan pertama pada kelas master. Pada awalnya mereka mencoba untuk mencobanya, untuk melihat apakah format ini akan berjalan. Dan seperti yang ditunjukkan oleh praktik 3-4 konferensi terakhir, jika Anda menghitung C ++ Rusia, menurut saya format baru berjalan sangat baik. Sebagai contoh, saya sekarang memiliki kesempatan, bukan dalam 40 menit, untuk mencoba mendorong beberapa topik, tetapi dengan tenang selama 6 jam untuk memberi tahu orang-orang semua yang saya pikir perlu. Jika orang sudah siap, saya katakan semua yang saya bisa, bahkan lebih dari enam jam.


Anton: Lokakarya itu menyenangkan. Kadang-kadang mereka mengajukan pertanyaan yang Anda sukai: "Sial, mengapa begitu?" Dan selama beberapa hari Anda mencoba memahami mengapa ini tidak bekerja pada kompiler khusus ini, pada laptop yang tidak bahagia ini. Dan ada beberapa jenis kesalahan dalam kompiler atau yang lainnya. Tampaknya Anda datang ke kelas master hanya untuk mengatakan sesuatu, tetapi sebaliknya Anda mendapatkan umpan balik yang berguna yang membantu memperbaiki suatu tempat, untuk meningkatkan sesuatu.


Sergey: Dari sudut pandang penyelenggara konferensi dan kurator komunitas, saya akan mengatakan bahwa lokakarya sangat berguna bagi saya, karena kadang-kadang orang pergi ke sana, mendapatkan pengetahuan dasar, mengembangkannya lebih lanjut, menerapkannya dan kembali dengan laporan tentang hal itu. Beberapa orang mendatangi saya dan mengatakan bahwa mereka pergi ke kelas master untuk salah satu dari Anda, mereka sangat tertarik dengan topik ini, dan mereka membuat laporan sendiri.


Pavel: Anton, saya ingat Anda juga penulis buku tentang Boost , sekarang edisi kedua sudah keluar. Katakan bagaimana Anda memutuskan untuk menulisnya? Sebagai contoh, saya masih tidak akan berusaha untuk mengekspresikan pikiran saya dalam format yang rumit, menurut pendapat saya.


Anton: Itu adalah bulan yang sibuk di Boost, saya berdebat dengan seseorang di sana, mengutuk seseorang dan mengatakan apa yang harus dilakukan salah. Mereka meyakinkan saya dan, sepertinya, meyakinkan saya. Dan penerbit itu hanya mencari orang-orang yang akan menulis buku tentang Boost. Tampaknya mereka melihat ke dalam milis Boost, menyaksikan peserta paling aktif yang berbicara lebih percaya diri daripada orang lain, dan memilih saya.


Pavel: Bagaimana Anda mulai berkontribusi untuk Meningkatkan? Apakah itu pekerjaan atau hanya hobi?


Anton: Ini karena saya tidak mengerti cara kerja Boost. Kami menggunakan Boost di tempat kerja. Salah satu karya pertama saya adalah Boost, dan saya bahkan tidak tahu cara kerjanya di sana, mengapa ia bekerja seperti itu.


Paul: Sejauh ini Boost adalah perpustakaan sihir.


Anton: Dan saya mulai melihat, mengerti, dan pada suatu saat saya tiba-tiba menyadari bahwa di sini di lexical_cast Anda dapat melakukan yang lebih baik. Lalu saya menulis kepada pengelola itu, Alexey dari lexical_cast , mari kita terapkan tambalan ini, tetapi dia tidak menjawab saya. Saya menulis kepadanya dua atau tiga tambalan lagi.


Pavel: Jika saya ingat dengan benar, Anda harus tegas dalam mempromosikan tambalan Anda.


Anton: Tentu saja. Dengan open source selalu. Akibatnya, pengelola mengatakan bahwa dia benar-benar menjahit sekarang, dia memiliki banyak hal yang harus dilakukan, dan menawarkan untuk menjadi pengelola lexical_cast saya. Saya senang dan setuju. Dan kemudian Boost. Setiap, Boost. Varian saya menutup telepon saya perlahan. Pada saat itu ia menulis beberapa perpustakaannya, Boost.TypeIndex, Boost.Stacktrace, yang sekarang diterima sebagai standar.


Pavel: Di mana Anda mendapatkan ide untuk fitur baru di perpustakaan yang sudah jadi?


Anton: Beberapa hal, misalnya, Boost.DLL - orang ini menulis ke mailing-list Boost, kata mereka, lihat, betapa kerennya perpustakaan yang saya miliki, banyak hal yang menakutkan, rumit, dan menarik. Saya memandangnya seperti ini: "Ya, ya, ya, ya, oh, tapi saya akan menyukainya!" Saya menghubungi pria ini dan menyarankan agar saya mengambil beberapa bagian untuk bekerja dengan plugin secara terpisah. Mereka mengeluarkannya secara terpisah, dan ternyata bagian ini masuk ke Boost jauh lebih awal daripada yang dilakukan pria itu sendiri. Dengan Stacktrace, pada titik tertentu saya menyadari bahwa tidak ada mekanisme untuk mendapatkan Stacktrace. Ya, terkadang lambat laun mencapai saya. Dan itulah saat ketika saya menyadari bahwa di pro tidak ada cara untuk mendapatkan Stacktrace.


Pavel: Tampaknya dalam dua karya berbeda saya menulis perpustakaan yang sama dua kali untuk mencetak jejak tumpukan di musim gugur.


Anton: Jadi saya mengambilnya, mencobanya, melemparkannya ke orang-orang dari Boost, mereka bilang tidak, tidak akan melakukannya. Lalu saya mencoba dua kali lagi, dan ini adalah salah satu versinya, dia mengatur semuanya dan mengakar.


Pavel: Tetapi apakah Anda entah bagaimana menggunakannya dalam pekerjaan Anda?


Anton: Ya, kami di Yandex.Taxi sangat aktif menggunakan Boost.Stacktrace, sangat baik dengan tindakan yang sama, misalnya. Apakah Anda memiliki kesamaan - bekerja dengan JSON, katakanlah. Pengguna di beberapa titik mengakses bidang JSON yang tidak ada di sana. Hanya melempar pengecualian? Nah, di suatu tempat di atasnya akan menangkap. Secara umum, di mana pengguna meneleponnya? Di sana, di seluruh kode untuk bekerja dengan JSON, apakah pengguna memiliki bidang persis di mana ia belum mencapainya? Pada titik apa dia memintanya? Dan Stacktrace sangat membantu untuk memahami apa dan di mana yang salah, di mana pengguna kacau.


Pavel: Seringkali versi yang Anda gunakan di tempat kerja mulai bubar dengan apa yang ada di sumber terbuka? Atau apakah Anda terus-menerus mencoba untuk mentransfer fitur bolak-balik?


Anton: Saya mentransfer fitur bolak-balik. Tentu saja dengan izin pimpinan. Dan saya akan mengatakan bahwa ini adalah interaksi yang sangat berguna. Misalnya, di Yandex.Taxi, kami perhatikan bahwa fungsi toString () untuk Stacktrace tidak ada. Itu ada dalam proposal standardisasi, dijelaskan di mana-mana, tetapi tidak dalam Boost. Terlepas dari kenyataan bahwa menurut saya dia ada di sana, saya merobek seluruh proposal standardisasi dari Boost. Ditambahkan ke Boost. Semua orang senang.


Ngomong-ngomong, kembali ke kelompok kerja. Mungkin, Anda langsung pergi ke pertemuan berikutnya setelah C ++ Siberia?


Anton: Ya, saya akan naik pesawat besok pagi, 40 jam penerbangan, dan hari yang sama saya akan terbang ke Kona. Pada agenda rapat, seluruh komite harus memutuskan seperti apa bentuk C ++ 20. Apa yang masuk ke dalamnya. Perhentian terakhir sebelum C ++ 20 hanya akan tetap memperbaiki bug. Modul dan coroutine ada dalam agenda sekarang.


Pavel: Dua fitur penting yang menjadi perdebatan panjang dan bersemangat.


Anton: Semuanya kurang lebih jelas dengan modul, mereka sepertinya diterima, tetapi dengan coroutine itu sama sekali tidak bisa dipahami, karena hanya pada pertemuan ini proposal ketiga yang bersaing untuk coroutine muncul. Ini benar-benar berbeda, sama sekali berbeda dari apa yang ada di Coroutines TS, dan ada poin kuat. Tentu saja ada yang lemah. Tidak jelas bagaimana hal itu akan terjadi. Dan bagaimana umumnya orang disetel ke coroutine.


Pavel: Apa rencana Anda untuk C ++ Rusia selanjutnya? Apakah Anda ingin laporan dari Anda?


Anton: Ya, tentu saja. Saya akan datang dengan sesuatu. Mungkin tentang Pilorama.


Sergey: Baiklah, terima kasih banyak, teman-teman! Saya tidak akan menahan Anda lagi. Selamat tinggal semuanya! Sampai jumpa di C ++ Rusia .


Beberapa kata tentang pelatihan di konferensi C ++ Rusia


Seperti yang dikatakan Pavel dengan benar dalam wawancara ini, pelatihan dan kelas master memiliki keunggulan yang tidak terbantahkan: moderator memiliki kesempatan untuk membawa seluruh topik dalam beberapa jam, daripada mencoba menyimpannya dalam 50 menit seperti dalam laporan reguler.


Perlahan, kelas master menjadi tradisi. Kami pertama kali menahannya di tahun 2017, kemudian kami mengujinya di C ++ Siberia. Tahun ini akan ada tiga kelas master. Anda telah bertemu dengan pemimpin mereka berdua dalam wawancara ini.


Kelas master adalah enam jam, menggabungkan informasi teoritis dan latihan praktis. Sejumlah kecil peserta memberikan pekerjaan individu dengan masing-masing. Ini, pertama-tama, tentu saja, latihan. Jadi semua kelas master akan membutuhkan laptop dengan kompiler C ++ modern yang diinstal.


Tiga kelas master ditawarkan untuk dipilih: “Pemrograman fungsional terapan dalam C ++” akan dilakukan oleh Ivan Čukić, dan “Integrasi berkelanjutan untuk pengembang C ++” dan “Smart dan modern C ++” akan menjadi karya pengembang kami, Pavel Filonov dan Anton Polukhin.


Kelas master Ivan bukan untuk level awal, akan cocok untuk anak-anak yang ingin membuka pintu persepsi yang lebih luas. Ivan adalah seorang peneliti di University of Belgrade, pemelihara KActivities, Contour daemon, Lancelot dan proyek-proyek KDE lainnya. Ini akan, seperti yang Anda mengerti, tentang pemrograman fungsional. Untuk jaga-jaga, peserta disarankan untuk memiliki GCC dan Dentang versi terbaru. Beberapa saat kemudian kami akan mengeluarkan gambar VirtualBox dengan semua yang Anda butuhkan. Topik-topik berikut akan dibahas di kelas master: adalah STL jauh dari pemrograman fungsional, yang merupakan objek fungsional, std :: invoke dan monads, monads, monads. Dan beberapa monad lagi.


Anda sudah akrab dengan peneliti pengembang ini di Kaspersky Lab Pavel Filonov . Dia akan mengundang peserta untuk membangun CI mereka dengan conan dan travis. Pavel juga akan menjelaskan metode integrasi berkelanjutan, dan pada bagian praktis ia akan mengajar untuk memecahkan masalah menggunakan contoh-contoh proyek rumah / pekerjaan di Open Source dan proyek kerja dengan kode sumber tertutup.


Secara alami, Anda harus dapat memprogram dalam C ++, membawa laptop dengan OS apa pun, salah satu kompiler utama, cmake segar (Anda perlu memahami sintaks CMakeLists.txt), git, python 3 dan pip3 dan banyak akun. Rincian lebih lanjut tentang ini ada di deskripsi di situs .


Dan akhirnya, kelas master dari antoshkka dikhususkan untuk keterampilan optimasi yang tepat. Untuk jaga-jaga, saya ingatkan Anda: dia adalah pengembang senior layanan Yandex.Taxi, perwakilan WP 21 di pertemuan internasional komite standardisasi C ++, penulis proposal yang diterima untuk standar bahasa, pengembang Boost, dll. Anton akan mempertimbangkan contoh dengan kesalahan pengoptimalan prematur yang sering terjadi, kemudian para peserta akan mempertimbangkan algoritme dan kerumitan perpustakaan standar, wadah dengan fitur, Pindahkan semantik, dan perilaku tak terduganya, multithreading. Karena kursus ini praktis, semua topik akan diselidiki secara eksperimental menggunakan pustaka C ++ untuk tolok ukur tolok ukur Google. Untuk kursus Anda hanya membutuhkan pengetahuan dasar C ++ dan kompiler terbaru dengan dukungan C ++ 11.


Semua hal di atas tentu saja hanya referensi singkat untuk referensi Anda. Satu-satunya sumber kebenaran yang sebenarnya adalah situs konferensi , di mana semuanya dirinci dan dinyatakan dengan jelas. Misalnya, ia dengan jelas mencantumkan perangkat lunak yang diperlukan pada laptop Anda beserta versinya.


Konferensi C ++ Rusia akan diadakan pada 19-20 April 2019 di Moskow. Tiket dapat dibeli di situs web resmi . Penting: mulai 1 Maret, harga tiket akan naik. Jika Anda ingin membeli dengan harga Februari, Anda harus melakukannya sekarang.

Source: https://habr.com/ru/post/id441800/


All Articles