Top 10 Berichte der C ++ Russia 2018 Konferenz: vollständige Videos, Folien, Kommentare

In diesem Artikel finden Sie zehn beste Berichte von Andrei Alexandrescu, David Vandervoord, John Kalb und vielen anderen.


Funktionen des C ++ - Compilers, Asynchronität, Multithreading, Parallelität, Speichermodell, Algorithmen und STL, Metaprogrammierung und Reflexion, viele Themen.



All dies sind die Aufnahmen der C ++ Russia-Konferenz, der größten in der Geschichte. Achthundert Teilnehmer, ein ziemlich großer Saal, weltberühmte Redner. Ein Jahr ist vergangen, aber die meisten Berichte haben ihre Relevanz nicht verloren. Es ist jedoch nicht verwunderlich, dass nur solche Berichte laut den Teilnehmern ganz oben stehen.


Das Format ist wie folgt:


  • Obligatorisches YouTube-Video
  • Folien, falls vorhanden
  • Eine detaillierte Beschreibung des Berichts in russischer Sprache
  • Kurzbiographie des Sprechers

Außerdem haben Sie Habrs Kommentare, um zu besprechen, was Sie gesehen haben. Werbung auf YouTube ist deaktiviert, niemand wird sich einmischen. Es gibt jetzt alles zu sehen.


10. Tipps und Tricks zur Speicherverwaltung


Alexey Salmin



Im Jahr 2017 verliert das Problem der Auswahl eines Allokators in C ++ nicht an Relevanz. Sie haben dem Standard eine neue Methode hinzugefügt, um einen lokalen Allokator für Container ( std::pmr ), globales tcmalloc und jemalloc sowie die Kernel-Schnittstellen, auf die sie sich verlassen, tcmalloc . Dieser Bericht widmet sich der "unteren Etage" des Entwurfs: den Funktionen von mmap und madvise im Linux-Kernel und den Auswirkungen dieser Funktionen auf die Leistung von Allokatoren.


Über den Sprecher


Alexey Salmin absolvierte die MMU NSU, beschäftigte sich mit symbolischem Rechnen und statischer Analyse und arbeitete bei Intel in Nowosibirsk. Seit 2016 arbeitet er im Büro von Yandex Moskau und entwickelt die Backend-Echtzeitsuche.




9. Best Practices für Parallelität in modernem C ++


Rainer grimm



Folien


Die Standardisierung von C ++ 11 gab uns ein Speichermodell und Multithreading. In der Bibliothek gibt es Standardelemente wie Atomics, Threads, Tasks, Sperren und bedingte Variablen. Das Speichermodell bietet Garantien für die Multithread-Verwendung dieser Basiseinheiten.


Sieben Jahre sind vergangen, die Praxis der sicheren Verwendung von Multithreading- und Speichermodellen. In diesem Bericht erfahren Sie ausführlich über diese Praktiken: über die allgemeinen Regeln für Multithreading und spezielle Regeln für Bibliotheksprimitive und das Speichermodell. Die behandelten Themen decken Themen ab, die über die C ++ - Sprache hinausgehen.


Über den Sprecher


Rainer Grimm war über 20 Jahre als Architekt, Teamleiter und Ausbilder tätig. In seiner Freizeit schreibt er gerne Artikel über C ++, Python und Haskell und spricht auf Konferenzen. Er betreibt einen Blog namens Modern C ++. Derzeit hält er Vorträge zu den Themen modernes C ++ und Python. O'Reilly und Leanpub veröffentlichen mehrere seiner Bücher: "C ++ 11 für Programmierer", "C ++", "C ++ - Standardbiliothek", "The C ++ Standard Library".




8.2020: Eine void_t Odyssee


Ivan Čukić



Folien


C ++ hatte schon immer eine leistungsstarke Teilmenge der Metaprogrammiersprache, mit der Entwickler magische Tricks wie statische Selbstbeobachtung ausführen können, um eine polymorphe Ausführung ohne Vererbung sicherzustellen. Das Problem ist, dass diese Syntax sehr pervers und übermäßig ausführlich ist - all dies macht die Metaprogrammierung zu einer ziemlich großartigen Aufgabe.


Die neuesten Verbesserungen des Standards in Kombination mit den neuen Funktionen von C ++ 20 erleichtern die Metaprogrammierung und die Metaprogramme selbst sind lesbarer und verständlicher.


In diesem Vortrag werden wir uns mit modernen Metaprogrammiertechniken void_t und uns auf die magische Metafunktion void_t konzentrieren.


Übrigens wird Ivan auf der C ++ Russia 2019 in Moskau einen Vortrag zum Thema „Nur-Verschieben-C ++ - Design“ halten und außerdem eine Schulung zum Thema Angewandte funktionale Programmierung in C ++“ durchführen : Ist STL weit entfernt von funktionaler Programmierung, was sind funktionale Objekte, std :: invoke und Monaden? , Monaden, Monaden. Und noch ein paar Monaden. Iwans Training ist nicht für den Einstieg gedacht, sondern für Mittelstufe, die die Türen der Wahrnehmung weiter öffnen möchten.


Über den Sprecher


Ivan arbeitet im Fachbereich Informatik der Fakultät für Mathematik der Universität Belgrad und ist auf die Gestaltung von Programmiersprachen spezialisiert. Ein langjähriger Mitarbeiter von KDE, der an Plasma- und Low-Level-Frameworks zur Analyse und Verwaltung von Benutzeraktionen arbeitet. Maintainer KActivities, Contour und Lancelot.




7. Moderne C ++ - Parallelität von CPU zu GPU


Marke Simon



Folien


Parallele Programmierung kann verwendet werden, um von mehrkernigen und heterogenen Architekturen zu profitieren und die Softwareleistung erheblich zu steigern. Modernes C ++ hat einen langen Weg zur Vereinfachung des parallelen Programmierprozesses zurückgelegt, indem sowohl Abstraktionen auf hoher als auch auf niedriger Ebene eingeführt wurden. C ++ 17 ist noch weiter gegangen und hat uns neue parallele Algorithmen auf hoher Ebene gegeben, und von C ++ 20 wird noch mehr erwartet. In diesem Bericht werden wir an einer Überprüfung bestehender Dienstprogramme zur Organisation von Parallelität teilnehmen und in die Zukunft blicken, in der GPUs und heterogene Systeme mit neuen Funktionen der Standardbibliothek unterstützt werden, und neue Standards wie SYCL untersuchen.


Über den Sprecher


Simon ist ein GPGPU-Toolchain-Entwickler mit Schwerpunkt auf C ++. Ungesund liebt Template-Metaprogrammierung und die dunkelsten Seiten der Sprache. Sie finden ihn leicht in den Kommentaren zum StackOverflow, C ++ - Kanal in Slack oder in den Meetups der C ++ - Community Edinburgh, wo er einer der Organisatoren ist. Er diskutiert gerne Formalismusfragen in Sprache, Pattern Hacks, Bier, Whisky, experimentellem Kino und der Arbeit von Carly Rae Jepsen.




6. Erinnerung ist die perfekte Abstraktion


Fedor Short



Folien


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

Was passiert eigentlich, wenn diese 3 Codezeilen ausgeführt werden? Wir werden uns den Speicherzuweiser, das Betriebssystem und die moderne Hardware ansehen, um eine umfassende Antwort auf diese Frage zu geben.


Über den Sprecher


Fedor - ein Absolvent von Fiztekh - war im Hochfrequenzhandel an der Moskauer Börse tätig. Er arbeitet in Yandex, entwickelt ein System zur Speicherung und Datenverarbeitung von YT. Er unterrichtet C ++ im ersten Jahr der Schule für Datenanalyse.




5.105 STL-Algorithmen in weniger als einer Stunde


Jonathan Boccara


Folien



Wir alle wissen, dass es schön wäre, die STL-Algorithmen zu kennen. Wenn Sie sie beim Bau von Architekturen verwenden, können Sie sie ausdrucksvoller und zuverlässiger machen. Manchmal ist es sehr bedeutsam und spektakulär.


Sind Sie zur Realisierung Ihrer Algorithmen gekommen?


In diesem Bericht sehen Sie alle 105 Algorithmen, einschließlich der in 11 und 17 Standards hinzugefügten. Dies ist jedoch nicht nur eine Aufzählung - der Kern des Berichts besteht darin, das Vorhandensein des Systems, der Gruppen und Muster, in denen sie organisiert sind, und ihrer Beziehung zueinander in diesen Algorithmen aufzuzeigen.


Dieses Gesamtbild ist der beste Weg, sich an alle zu erinnern und sie als einen vollständigen Satz von Werkzeugen und Möglichkeiten zu verstehen, um den Code ausdrucksvoller und zuverlässiger zu machen.


Über den Sprecher


Jonathan Boccara liebt C ​​++ und insbesondere die Probleme beim Schreiben von verständlichem Ausdruckscode. Insbesondere betreibt er deshalb den Fluent C ++ - Blog. Er arbeitet auch als leitender Entwickler bei Murex, wo er riesige C ++ - Codebasen für den Finanzbereich verwaltet. Sie haben jeden Tag eine interessante Praxis im Unternehmen, um kurze Berichte im von ihm geleiteten „Tageszeitungsformat“ zu erstellen.




4. Asynchronität bei der Programmierung


Ivan Puzyrevsky



Auf dem Gebiet der Entwicklung hoch geladener Multithread- oder verteilter Anwendungen kann man zunehmend Gespräche über asynchronen Code hören, einschließlich Spekulationen über die Notwendigkeit (mangelnde Notwendigkeit), die Asynchronität im Code zu berücksichtigen, über die Verständlichkeit (Unverständlichkeit) von asynchronem Code und dessen Effizienz (Ineffizienz). In diesem Bericht werden wir versuchen, tiefer in den Themenbereich einzutauchen: Wir werden analysieren, was Asynchronität ist; wenn es entsteht; wie sich dies auf den von uns geschriebenen Code und die von uns verwendete Programmiersprache auswirkt. Wir werden versuchen herauszufinden, was Zukunft und Versprechen damit zu tun haben. Lassen Sie uns ein wenig über Coroutinen und Schauspieler sprechen. Wir werden JavaScript und Betriebssysteme beeinflussen. Der Zweck des Berichts besteht darin, die Kompromisse, die sich aus dem einen oder anderen Ansatz bei der Entwicklung von Multithread- oder verteilter Software ergeben, deutlicher zu machen.


Über den Sprecher


Ivan begann 2009 bei Yandex in der Abteilung für Sprachtechnologien in der Suche zu arbeiten. Jetzt beschäftigt er sich mit der Entwicklung verteilter Speicher- und Datenverarbeitungssysteme. Absolvent der Fakultät für Mathematische Logik und Algorithmus-Theorie der Fakultät für Mechanik und Mathematik der Moskauer Staatlichen Universität. Lehrer von ShAD.




3. C ++ Heute: Das Biest ist zurück


Jon Kalb



Folien


Dies ist ein Bericht, der teilweise auf O'Reillys C ++ Today basiert: The Beast is Back. In diesem Bericht werden wir ein wenig darüber spekulieren, warum Ingenieure, die produktiven Code schreiben möchten, C ++ wählen. John wird die historische Perspektive der Fokussierung auf C ++ vorstellen, erklären, wie die C ++ - Community gerade lebt und wohin die Sprache und ihr Publikum gehen. In letzter Zeit hat sich jeder für effektiven Code interessiert, vom Hersteller von Mobiltelefonen bis hin zu großen Rechenzentren. Daher ist C ++ mit seinen Open-Source-Bibliotheken wieder ein heißes Thema geworden. Dieser Bericht erklärt deutlich, warum sich die meisten Ingenieure für all dies für C ++ entscheiden. Es gibt eine allgemeine Skizze von C ++ im historischen Maßstab mit Erklärungen zu den Wachstumspunkten und dem Rückgang der Popularität.


Über den Sprecher


John programmiert seit über 20 Jahren in C ++. Während dieser Zeit gelang es ihm, an C ++ - Projekten von Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, Yahoo! und in ein paar Firmen, von denen sowieso niemand gehört hatte. Er ist Vorsitzender des Boost Steering Committee, nimmt am C ++ - Streckenprogramm des Silicon Valley Code Camp teil und ist einer der Direktoren von C ++ Now (auch bekannt als BoostCon). 2014 erhielt er Microsoft Most Valuable Professional.




2. Reflektierende Metaprogrammierung in C ++


Daveed vandevoorde



Folien


Einmal organisierte das C ++ - Standardisierungskomitee eine Untergruppe „SG-7“, die die Möglichkeiten der Implementierung von Reflexion untersucht. Vor kurzem beschäftigte sich diese Gruppe auch mit Metaprogrammierung und traf mehrere wichtige Entscheidungen hinsichtlich des Aussehens der möglichen Lösung. In diesem Bericht werden wir uns mit der Vergangenheit befassen, die uns zu einem solchen Leben geführt hat, und die Möglichkeiten der nativen Unterstützung für die „reflektierende Metaprogrammierung“ in C ++ diskutieren.


Über den Sprecher


David ist ein belgischer Wissenschaftler, der mit Princeton in den USA lebt. Er ist Vice President of Engineering bei der Edison Design Group, wo er hauptsächlich zum eigenen Frontend für den C ++ - Compiler beiträgt. Er nimmt aktiv am C ++ Standardization Committee teil, wo er an der Entwicklung der Kernsprache beteiligt ist.




1. Unerwartet erwartet


Andrei Alexandrescu



Das Schreiben von fehlerresistentem Code ist Schmerz, Schmerz in jeder Sprache. Ausnahmen sind zwar eine politisch korrekte Methode, um Fehler in C ++ zu signalisieren, aber in vielen Anwendungen müssen Sie Rückkehrcodes verwenden - aus Gründen des einfachen Verständnisses, der einfachen lokalen Verarbeitung, der Effizienz des generierten Codes usw.


In diesem Bericht werden wir sehen, wie Theorie und Praxis kombiniert werden können, um Fehlerbehandlungsprobleme zu lösen. Der Expected Typ Expected kann sowohl lokal (im Stil von Rückkehrcodes) als auch zentral (im Stil von Ausnahmen) verwendet werden, wobei die Vorteile beider Ansätze kombiniert werden.


Über den Sprecher


Der rumänische Entwickler Andrei Alexandrescu ist Experte für eine Vielzahl von Themen, darunter die Architektur und Implementierung von Softwaresystemen, das Design von Programmiersprachen, die Architektur von Bibliotheken, alle Aspekte von C ++ und D, maschinelles Lernen und die Analyse natürlicher Sprachen. Sein kreativer Ansatz zur Problemlösung, sein breitestes Wissen und sein Charisma machen Andrei zu einem der beliebtesten Redner der Welt.


Andrei's Bücher und Artikel haben die gesamte Branche beeinflusst. Er ist Autor von Bestseller-Büchern wie Modern C ++ Design, C ++ Coding Standards (zusammen mit Herb Sutter), The D Programming Language und Artikeln wie Simplify Your Exception-Safe Code - Forever (geschrieben) mit Petru Marginean) und Mojo: Bewegung gemeinsamer Objekte. Eine vollständige Liste seiner Werke finden Sie hier .


Die nächste C ++ Russia-Konferenz findet vom 19. bis 20. April in Moskau statt. Ein neues Programm, neue Sprecher und ein weiterer ganzer Trainingstag . Das Programm kann auf der offiziellen Website eingesehen werden , Tickets können dort auch gekauft werden .

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


All Articles