Vom 7. bis 8. April veranstaltete die CoreHard-Community in Minsk die 8. internationale Konferenz CoreHard Spring 2018 über C ++ - Sprache und verwandte "Hardcore" -Technologien in Minsk. An der Konferenz nahmen Redner führender IT-Unternehmen aus Weißrussland, Russland, der Ukraine, Deutschland und den Niederlanden teil. Sie sprachen über ihre Erfahrungen in der Entwicklung und im Testen.
Jetzt sind die Konferenzberichte auf YouTube frei verfügbar und jeder kann sie kennenlernen. Vielen Dank an die Organisatoren der Konferenz.
Der Autor des Berichts traf C ++ 1991 und seit 1992 ist C ++ die Hauptentwicklungssprache für den Sprecher. Was ist in dieser Zeit mit der Zunge passiert? Wie und warum wurde er populär? Wie begann die Stagnation bei der Entwicklung von C ++? Wie hat C ++ seine Popularität verloren? Gibt es in der modernen Welt Platz für C ++? Lassen Sie uns versuchen, darüber zu sprechen, basierend auf 25 Jahren Erfahrung in der C ++ - Programmierung.
Lassen Sie uns darüber sprechen, wie sich die Ansätze für die Arbeit mit Spielobjekten in Match-3-Spielen geändert haben und wie wir zu dem aktuellen Ansatz für Feature-Komponenten zum Erstellen veränderlicher Spielobjekte gekommen sind. Was sind seine Vorteile gegenüber anderen bewährten Ansätzen zum Erstellen von Tutorials, zahlreichen Modi sowie zur Codeüberprüfung?
Lassen Sie uns über Funktions-Hooks in Anwendungen sprechen, die in verschiedenen Sprachen und Technologien geschrieben wurden. Der Bericht wird Folgendes berücksichtigen: Grundkonzepte, Anwendungen, verschiedene Abfangmethoden und ihre technischen Merkmale, vorgefertigte Bibliotheken.
In dem Bericht spricht der Autor über seine praktischen Erfahrungen beim Kompilieren und Verwenden von C ++ auf Webseiten, darüber, was getan werden muss, um eine Anwendung in C ++ ins Web zu portieren, über die damit verbundenen Einschränkungen, über die Integration von C ++ - Code in JavaScript und andere Webelemente Seiten.
3,5 Blockchain von 2 Megabyte: wie, warum und warum. Funktionen zur Entwicklung plattformübergreifender Blockchain-Lösungen.
In diesem Bericht spricht der Autor über die Tatsache, dass Obj-C / C ++ eine Erweiterung von vorhandenem C / C ++ ist. Es werden auch die Funktionen der Sprache berücksichtigt, über die Speicherverwaltung (Beibehalten / Freigeben vs. ARC vs. Shared_Ptr / Unique_Ptr), über Swift und warum es besser oder schlechter als Obj-C / C ++ ist.
In C ++ gibt es viele Möglichkeiten, dasselbe Problem zu lösen. Wir werden das eigentliche Problem aus der Praxis des Autors übernehmen und eine Reihe von C ++ - Tools untersuchen, um es zu lösen: STL-Container, boost.range, C ++ 20-Bereiche, Coroutinen. Wir werden Lösungen hinsichtlich ihrer Schnittstellen und Leistung vergleichen und wir werden auch sehen, wie eine Lösung leicht von einer anderen erhalten werden kann, wenn der Code richtig organisiert ist. Dabei betrachten wir die Funktionen von C ++ 17: constexpr if, Auswahlanweisungen mit Initialisierer, std :: not_fn usw. Besonderes Augenmerk wird auf Standardalgorithmen gelegt (mein Lieblingsthema).

Analyse Datenfluss (Datenströme) ist eine Technologie zur Analyse des Quellcodes von Programmen, die in verschiedenen Entwicklungstools weit verbreitet ist: Compiler, Linters, IDEs. Wir werden am Beispiel eines statischen Analysators darüber sprechen. Berücksichtigen Sie die Klassifizierung und verschiedene Arten der Datenflussanalyse, verwandte Technologien, die sich gegenseitig ergänzen, und die Probleme, die während der Entwicklung auftreten, sowie die Überraschungen, die C ++ uns bei der Analyse bietet. Während des Berichts werden wir verschiedene Fehler analysieren, die in realen Projekten mit dieser Technologie gefunden wurden.

Es kommt daher vor, dass Ihre Anwendung manchmal lange Zeit scheinbar banale Aufgaben ausführt und viel RAM verbraucht. Und Sie als Entwickler haben keine Ahnung, warum dies geschieht (aber Sie sind interessiert). Im Verlauf des Vortrags werden wir über Tools sprechen, die die Gründe für das seltsame Verhalten unserer Programme verstehen können. Wenn Sie keine Angst vor Wörtern wie Valgrind, gprof, gperftools und vielen anderen haben - willkommen!
Schnelles und einfaches Konfigurieren / Aktualisieren von Umgebungen für das Cross-Compilieren von Projekten für verschiedene Plattformen (basierend auf Docker), schnelles Wechseln zwischen diesen Plattformen, Organisieren von CI und Testen (basierend auf GitLab und Docker) mithilfe dieser Bausteine.
In dem Bericht wird die Codegenerierung beim Kompilieren verschiedener einfacher und komplexer Sprachkonstrukte auf verschiedenen Plattformen berücksichtigt, sowohl auf dem gemeinsamen x86 / x64 als auch auf solchen, die weniger Beachtung finden: ARM, AVR. Es wird auch Beispiele für vollständig exotische Prozessoren wie PowerPC und sogar MicroBlaze geben. Das Hauptaugenmerk wird nicht auf der Datenverarbeitung liegen, sondern auf dem Vergleich verschiedener Codekonstruktionen mit Anweisungen der Zielplattformen.
Die heutige Programmierung ist in viele Bereiche unterteilt, die ziemlich weit voneinander entfernt sind. Gibt es überhaupt eine konzeptionell einheitliche Programmierung und worauf beruht diese Einheit? Die Antworten auf diese und andere Fragen werden vom Autor des Berichts gegeben.
Der Teufel steckt im Detail. Dies gilt auch für C ++ 17. Wir bekommen neue coole Funktionen, aber wir bekommen auch neue Dinge, die wir pflegen und in Erinnerung behalten müssen. In diesem Vortrag werden einige der coolen Funktionen besprochen, die zu Überraschungen führen können.
Diskussionen
Verpassen Sie nicht die Diskussionen, in denen verschiedene Themen zur Diskussion der Sprachen Rust und C ++ sowie Antworten auf Fragen von Mitgliedern des C ++ - Standardisierungsausschusses angesprochen wurden.