10 laporan teratas konferensi C ++ Russia 2018: video lengkap, slide, komentar

Dalam artikel ini Anda akan menemukan sepuluh laporan terbaik dari Andrei Alexandrescu, David Vandervoord, John Kalb dan banyak lainnya.


Fitur dari kompiler C ++, asynchrony, multithreading, concurrency, model memori, algoritma dan STL, metaprogramming dan refleksi, banyak topik.



Semua ini adalah rekaman dari konferensi C ++ Rusia, yang terbesar dalam sejarah. Delapan ratus peserta, aula yang agak besar, pembicara terkenal di dunia. Setahun telah berlalu, tetapi sebagian besar laporan belum kehilangan relevansinya. Namun, itu tidak mengherankan - hanya laporan seperti itu masuk ke puncak menurut peserta.


Formatnya adalah sebagai berikut:


  • Video YouTube wajib
  • Slide, jika ada
  • Penjelasan rinci tentang laporan dalam bahasa Rusia
  • Biografi singkat pembicara

Plus, Anda memiliki komentar Habr untuk membahas apa yang Anda lihat. Iklan di YouTube dinonaktifkan, tidak ada yang akan ikut campur. Ada segalanya untuk mulai menonton sekarang.


10. Tips & Trik Manajemen Memori


Alexey Salmin



Pada 2017, masalah memilih pengalokasi di C ++ tidak kehilangan relevansi. Mereka menambahkan cara baru ke standar untuk memilih pengalokasi lokal untuk kontainer ( std::pmr ), global tcmalloc dan jemalloc terus berkembang, serta antarmuka kernel tempat mereka bergantung. Laporan ini dikhususkan untuk "lantai bawah" dari desain: fitur mmap dan madvise di kernel Linux dan dampak dari fitur-fitur ini pada kinerja pengalokasi.


Tentang Pembicara


Alexey Salmin lulus dari MMU NSU, bergerak di bidang komputasi simbolik dan analisis statis, bekerja di Intel di Novosibirsk. Sejak 2016, ia telah bekerja di kantor Yandex Moscow, mengembangkan pencarian real-time backend.




9. Praktik Terbaik untuk Konkurensi dalam C ++ Modern


Rainer grimm



Slide


Standarisasi C ++ 11 memberi kami model memori dan multithreading. Ada hal-hal standar di perpustakaan seperti atom, utas, tugas, kunci, variabel bersyarat. Model memori memberikan jaminan untuk penggunaan multi-utas unit dasar ini.


Tujuh tahun telah berlalu, praktik penggunaan multithreading dan model memori yang aman. Dalam laporan ini, kami belajar secara rinci tentang praktik-praktik ini: tentang aturan umum multithreading dan aturan khusus untuk primitif perpustakaan dan model memori. Masalah yang dibahas mencakup topik yang lebih luas dari sekedar bahasa C ++.


Tentang Pembicara


Rainer Grimm bekerja sebagai arsitek, pemimpin tim dan instruktur selama lebih dari 20 tahun. Di waktu luangnya, ia suka menulis artikel tentang C ++, Python, dan Haskell dan berbicara di konferensi. Dia menjalankan blog yang disebut Modern C ++. Dia saat ini menjadi pembicara pada topik C ++ dan Python modern. O'Reilly dan Leanpub menerbitkan beberapa bukunya: "C ++ 11 für Programmierer", "C ++", "C ++ - Standardbiliothek", "The C ++ Standard Library".




8.2020: Pengembaraan void_t


Ivan Čukić



Slide


C ++ selalu memiliki subset yang kuat dari bahasa metaprogramming yang memungkinkan pengembang untuk melakukan trik magis seperti introspeksi statis untuk memastikan eksekusi polimorfik tanpa warisan. Masalahnya adalah bahwa sintaks ini sangat sesat dan terlalu bertele-tele - semua ini membuat metaprogramming tugas yang cukup luar biasa.


Peningkatan terbaru dalam standar, dikombinasikan dengan fitur-fitur baru C ++ 20, membuat metaprogramming lebih mudah dan metaprogram itu sendiri lebih mudah dibaca dan dimengerti.


Dalam pembicaraan ini, kita akan melihat teknik metaprogramming modern, dengan fokus pada void_t magic void_t.


Ngomong-ngomong, di C ++ Russia 2019 di Moskow, Ivan akan memberikan presentasi tentang “desain C ++ Move-only” dan juga akan mengadakan pelatihan “Pemrograman fungsional terapan dalam C ++” : STL jauh dari pemrograman fungsional, yang merupakan objek fungsional, std :: invoke and monads , monad, monad. Dan beberapa monad lagi. Pelatihan Ivan bukan untuk level pemula, itu akan cocok untuk anak-anak yang ingin membuka pintu persepsi yang lebih luas.


Tentang Pembicara


Ivan bekerja di departemen PhD Ilmu Komputer, Fakultas Matematika, Universitas Belgrade, yang mengkhususkan diri dalam desain bahasa pemrograman. Kontributor lama untuk KDE yang mengerjakan Plasma dan kerangka kerja tingkat rendah untuk menganalisis dan mengelola tindakan pengguna. KActivities Pemelihara, Kontur dan Lancelot.




7. Paralelisme C ++ modern dari CPU ke GPU


Merek Simon



Slide


Pemrograman paralel dapat digunakan untuk mendapatkan manfaat dari arsitektur multi-core dan heterogen, secara signifikan meningkatkan kinerja perangkat lunak. Modern C ++ telah jauh menyederhanakan proses pemrograman paralel dengan memperkenalkan abstraksi level tinggi dan level rendah. C ++ 17 telah bergerak lebih jauh dan telah memberi kami algoritma paralel tingkat tinggi yang baru, dan bahkan lebih banyak lagi diharapkan dari C ++ 20. Dalam laporan ini, kami akan mengambil bagian dalam tinjauan utilitas yang ada untuk mengatur paralelisme dan melihat ke masa depan, di mana GPU dan sistem heterogen akan menerima dukungan dengan fitur baru dari perpustakaan standar, dan melihat standar baru seperti SYCL.


Tentang Pembicara


Simon adalah pengembang toolchain GPGPU dengan fokus pada C ++. Orang yang tidak sehat menyukai metaprogramming template dan sisi tergelap dari bahasa tersebut. Anda dapat dengan mudah menemukannya di komentar di saluran StackOverflow, C ++ di Slack atau pada pertemuan komunitas C ++ Edinburgh, di mana ia adalah salah satu penyelenggara. Dia suka membahas masalah formalisme dalam bahasa, peretasan pola, bir, wiski, sinema eksperimental, dan karya Carly Rae Jepsen.




6. Memori adalah abstraksi yang sempurna


Fedor Short



Slide


 int* ptr = new int; *ptr = 42; delete ptr; 

Apa yang sebenarnya terjadi ketika 3 baris kode ini dieksekusi? Kami akan melihat ke dalam pengalokasi memori, sistem operasi dan perangkat keras modern untuk memberikan jawaban lengkap untuk pertanyaan ini.


Tentang Pembicara


Fedor - lulusan Fiztekh, terlibat dalam Perdagangan Frekuensi Tinggi di bursa saham Moskow. Ia bekerja di Yandex, mengembangkan sistem penyimpanan dan pemrosesan data YT. Dia mengajar C ++ di tahun pertama sekolah analisis data.




5.105 Algoritma STL dalam Waktu Kurang dari Satu Jam


Jonathan boccara


Slide



Kita semua tahu bahwa alangkah baiknya jika mengetahui algoritma STL. Dengan menggunakannya dalam konstruksi arsitektur, Anda dapat membuatnya lebih ekspresif dan dapat diandalkan. Terkadang sangat signifikan dan spektakuler.


Sudahkah Anda sampai pada realisasi algoritma Anda?


Dalam laporan ini, Anda akan melihat semua 105 algoritma, termasuk yang ditambahkan dalam 11 dan 17 standar. Tetapi ini bukan hanya sebuah enumerasi - esensi dari laporan ini adalah untuk menunjukkan keberadaan dalam algoritma sistem, kelompok dan pola di mana mereka diorganisir, dan bagaimana mereka berhubungan satu sama lain.


Gambaran besar ini adalah cara terbaik untuk mengingat semuanya dan memahaminya sebagai seperangkat alat dan cara untuk membuat kode lebih ekspresif dan lebih dapat diandalkan.


Tentang Pembicara


Jonathan Boccara menyukai C ++, dan khususnya - masalah penulisan kode ekspresif yang bisa dimengerti. Secara khusus, itulah sebabnya ia menjalankan blog Fluent C ++. Ia juga bekerja sebagai pengembang senior di Murex, di mana ia menangani basis kode C ++ besar untuk digunakan dalam keuangan. Mereka memiliki praktik yang menarik di perusahaan setiap hari untuk membuat laporan singkat dalam format "harian" , yang dipimpinnya.




4. Asynchrony dalam pemrograman


Ivan Puzyrevsky



Di bidang pengembangan aplikasi multithreaded atau terdistribusi sangat, seseorang dapat semakin mendengar percakapan tentang kode asinkron, termasuk spekulasi tentang perlunya (kurangnya kebutuhan) untuk memperhitungkan asinkron dalam kode, tentang kelengkapan (tidak dapat dipahami) dari kode asinkron, dan efisiensinya (inefisiensi). Dalam laporan ini, kami akan mencoba menyelam lebih dalam ke area subjek: kami akan menganalisis apa yang tidak sinkron; ketika itu muncul; bagaimana hal itu memengaruhi kode yang kita tulis dan bahasa pemrograman yang kita gunakan. Kami akan mencoba mencari tahu apa hubungan masa depan & janji dengan itu, mari kita bicara sedikit tentang coroutine dan aktor. Kami akan memengaruhi JavaScript dan sistem operasi. Tujuan dari laporan ini adalah untuk membuat kompromi yang muncul dengan satu atau beberapa pendekatan lain untuk pengembangan perangkat lunak multithreaded atau terdistribusi lebih eksplisit.


Tentang Pembicara


Ivan mulai bekerja di Yandex pada tahun 2009 di departemen teknologi linguistik dalam Pencarian. Sekarang dia terlibat dalam pengembangan penyimpanan terdistribusi dan sistem pemrosesan data. Lulusan Departemen Logika Matematika dan Teori Algoritma Fakultas Mekanika dan Matematika Universitas Negeri Moskow. Guru dari ShAD.




3. C ++ Hari Ini: The Beast is Back


Jon kalb



Slide


Ini adalah laporan yang sebagian berdasarkan pada O'Reilly C ++ Today: The Beast is Back. Dalam laporan ini, kami akan berspekulasi sedikit mengapa para insinyur yang ingin menulis kode produktif memilih C ++. John akan menyajikan perspektif historis tentang fokus pada C ++, menjelaskan bagaimana komunitas C ++ hidup sekarang, dan ke mana bahasa dan audiensnya menuju. Baru-baru ini, semua orang telah tertarik pada kode yang efektif, dari produsen ponsel hingga pusat data besar, sehingga C ++ dengan pustaka sumber terbukanya telah menjadi topik hangat lagi. Laporan ini dengan jelas menjelaskan mengapa sebagian besar insinyur memilih C ++ untuk semua ini. Ada sketsa umum C ++ pada skala historis dengan penjelasan tentang titik-titik pertumbuhan dan penurunan popularitas.


Tentang Pembicara


John telah mengkode dalam C ++ selama lebih dari 20 tahun. Selama waktu ini, ia berhasil berpartisipasi dalam proyek C ++ di Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, Yahoo! dan di beberapa perusahaan yang belum pernah ada yang mendengar. Dia adalah ketua Komite Pengarah Peningkatan, dan juga terlibat dalam program jalur C ++ di Silicon Valley Code Camp dan merupakan salah satu direktur C ++ Now (alias BoostCon). Pada 2014, ia menerima Microsoft Most Valuable Professional.




2. Metaprogramming Reflektif dalam C ++


Daveed vandevoorde



Slide


Setelah komite standardisasi C ++ mengorganisir subkelompok "SG-7", yang mempelajari kemungkinan menerapkan refleksi. Baru-baru ini, kelompok ini juga terlibat dalam metaprogramming dan membuat beberapa keputusan penting mengenai bagaimana solusi yang mungkin terlihat. Dalam laporan ini, kita akan melihat ke masa lalu, yang membawa kita ke kehidupan seperti itu, dan membahas kemungkinan dukungan asli untuk "pemrograman metafektif reflektif" dalam C ++.


Tentang Pembicara


David adalah seorang ilmuwan Belgia yang tinggal bersama Princeton di Amerika Serikat. Dia adalah wakil presiden bidang teknik di Edison Design Group, di mana dia berkontribusi terutama pada frontend mereka sendiri untuk kompiler C ++. Dia aktif berpartisipasi dalam Komite Standardisasi C ++, di mana dia terlibat dalam evolusi bahasa inti.




1. Diharapkan tidak terduga


Andrei Alexandrescu



Menulis kode tahan kesalahan adalah rasa sakit, rasa sakit dalam bahasa apa pun. Pengecualian, meskipun merupakan cara yang benar secara politis untuk menandai kesalahan dalam C ++, tetapi dalam banyak aplikasi Anda harus menggunakan kode pengembalian - untuk alasan yang terkait dengan kemudahan pemahaman, kemudahan pemrosesan lokal, efisiensi kode yang dihasilkan, dan sebagainya.


Dalam laporan ini, kita akan melihat bagaimana teori dan praktik dapat digabungkan untuk menyelesaikan masalah penanganan kesalahan. Jenis Expected dapat digunakan baik secara lokal (dalam gaya kode pengembalian) dan terpusat (dalam gaya pengecualian), menggabungkan keuntungan dari kedua pendekatan.


Tentang Pembicara


Pengembang Rumania Andrei Alexandrescu adalah pakar dalam berbagai masalah, termasuk arsitektur dan implementasi sistem perangkat lunak, desain bahasa pemrograman, arsitektur perpustakaan, semua aspek C ++ dan D, pembelajaran mesin dan analisis bahasa alami. Pendekatan kreatifnya dalam memecahkan masalah, pengetahuan dan karisma yang luas menjadikan Andrei salah satu pembicara paling populer di dunia.


Buku dan artikel Andrei telah memengaruhi seluruh industri. Dia adalah penulis buku laris seperti Desain C ++ Modern, Standar C ++ C ++ (bersama dengan Herb Sutter), Bahasa Pemrograman D, dan artikel-artikel seperti Sederhanakan Kode Pengecualian-Aman Anda - Selamanya (ditulis dengan Petru Marginean) dan Mojo: Move of Joint Objects. Daftar lengkap karyanya dapat ditemukan di sini .


Konferensi C ++ Rusia berikutnya akan diadakan 19-20 April di Moskow, yaitu - segera. Program baru, pembicara baru, dan pelatihan sepanjang hari. Program ini dapat dilihat di situs web resmi , tiket juga dapat dibeli di sana .

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


All Articles