Lauf, Gopher, lauf! - worüber werden wir auf der GolangConf sprechen?

Wir haben 5-6 Gründe versprochen , auf Go umzusteigen, und es ist passiert! Auf der GolangConf-Konferenz, die ausschließlich Go gewidmet ist, werden am 7. Oktober 5 Berichte mit dem Titel "Switching to Go" für diejenigen veröffentlicht, die diese Sprache gerade in ihren Projekten verwenden oder verwenden.

Dies ist jedoch nur der Anfang. Vom ersten Mal an haben wir es geschafft, ein sehr starkes und vielfältiges Programm zusammenzustellen, das die Bedürfnisse von drei Kategorien von Teilnehmern erfüllt: professionelle Go-Entwickler; diejenigen, die gerade zu Go wechseln; Infrastrukturingenieure und Benutzer von in Go geschriebenen Tools.



Das Konferenzprogramm umfasst 21 Berichte , eine Sitzung mit Blitzberichten und Mitaps. Die Konferenzgäste können jederzeit aus 3-4 verschiedenen Themen auswählen und etwas Interessantes für sich finden. Ich denke sogar, dass das Problem der Wahl und die Unfähigkeit, zwischen den Flüssen zu brechen, relevanter sein werden (es ist gut, dass später alles auf dem Video zu sehen sein wird). Gleichzeitig werden Themen, die für eine Vielzahl von Spezialisten relevant sind, in verschiedenen Räumen diskutiert.

Wir werden den Best Practices für die Arbeit mit Go und allen Codes im Allgemeinen viel Aufmerksamkeit widmen. Wir werden Performance-Probleme und verschiedene Hardcore-Dinge mit erfahrenen Gophern besprechen. Für Infrastrukturingenieure wird es auch einige interessante Berichte geben. Der Block für nicht standardmäßige Verwendungsmöglichkeiten von Go lässt niemanden gleichgültig. Darüber hinaus wird es bis zu zwei Berichte über die Entwicklung des Frontends on Go geben, beide von ausländischen Sprechern.

Wir können sagen, dass das Frontend eine experimentelle Richtung ist. Front-End-Produktion wird nicht oft auf Go geschrieben, häufiger wird WebAssembly in persönlichen kleinen Projekten ausprobiert. Die von uns eingeladenen Redner können nicht nur beschreiben, wie Sie WebAssembly verwenden. Hierbei handelt es sich um ausführliche Berichte, die auf persönlichen Erfahrungen basieren. Sie zeigen, dass das Leben in WebAssembly möglich ist und wie Sie es in Ihren Projekten verwenden können.

GolangConf-Lautsprecher


Das Programmkomitee ging sehr streng mit der Auswahl der Themen und Referenten um. Die meisten unserer Redner sind in der Go-Community bekannt, aber gleichzeitig gibt es neue Gesichter. Wenn auf den Konferenzen von Zeit zu Zeit dieselben Leute sprechen, ist das etwas langweilig. Ich möchte einen neuen Look, neue Herausforderungen, neue Sprecher sehen. Wir haben es geschafft, frisches Blut anzuziehen, und sie haben auch sehr interessante Berichte, die auf praktischen Erfahrungen basieren. Zum Beispiel freue ich mich auf den Bericht von Ksenia Yakil.

Die Auswahl der ausländischen Sprecher war fast schwieriger, da es viele Bewerbungen von ihnen gab. Wir wissen jedoch, dass es für unser Publikum schwierig sein kann, viele Berichte auf Englisch anzuhören. 8-9 Berichte pro Tag sind bereits eine große Menge neuer Informationen, und wenn Sie aufgrund der Sprache zusätzliche Anstrengungen unternehmen müssen, um sie zu verstehen, wird es sehr schwierig. Daher haben wir nur drei englischsprachige Berichte, aber sie sind die meisten.

Tatsächlich ist die globale Go-Community sehr freundlich und bereit, Erfahrungen auszutauschen. Wir haben eine sehr gute Resonanz erhalten, als wir Call for Papers auf PaperCall.io eröffnet und eine Konferenz in der internationalen Go-Community auf Slack und Twitter angekündigt haben. Es ist uns zwar nicht gelungen, Superstars der Weltgemeinschaft anzuziehen, ihr Veranstaltungskalender ist für das kommende Jahr geplant. Aber dann haben wir weitreichende Pläne für die nächste GolangConf.

In diesem Jahr werden wir 21 Klassenberichte haben. Hier werde ich über einige von ihnen sprechen. Die vollständigen Informationen und den Zeitplan finden Sie auf der Konferenzwebsite.

Angewandte Go-Code-Ähnlichkeitsanalyse


Iskander Sharipov (VKontakte) hat in der Vergangenheit an einem Go-Compiler und einem Tuning von Drittanbietern für ihn gearbeitet - statische Analysatoren und Dienstprogramme für das Refactoring. Er plant nun, viele der für Go to the PHP-Ökosystem entwickelten Tools zu portieren. Sie können wahrscheinlich nach dieser kolossalen Erfahrung von Iskander am Rande fragen, und sein Bericht wird in erster Linie für diejenigen interessant sein, die über Probleme bei der Verarbeitung von Go-Code nachdenken:

  • So finden Sie doppelte Funktionen und Methoden in Ihrer Codebasis.
  • Vermeiden Sie es, die Funktionalität der Go-Standardbibliothek neu zu erfinden.
  • So vereinfachen Sie die Analyse von Go-Code auf syntaktischer Ebene.

Der Schlüssel zur Beantwortung dieser Fragen ist die Normalisierung von Go-Programmen, und darüber wird im Bericht diskutiert. Aber nicht in Worten, sondern in der Praxis - betrachten Sie eine Bibliothek zur Normalisierung von Go-Code und einige seiner praktischen Anwendungen.

Machen Sie sich mit WebAssembly auf den Weg


Der Mitarbeiter von Go Johan Brandhorst wird nach Moskau kommen, um uns WebAssembly vorzustellen und zu zeigen, wie Sie mit WebAssembly und Go beginnen können. WebAssembly wird seit fast zwei Jahren in Browsern unterstützt und ist seit Version 1.11 als Experiment in Go enthalten. Vielleicht kann er sogar JavaScript im Browser ersetzen und genau diese Sprache werden, der Code, mit dem überall gearbeitet werden kann.

Nach diesem Vortrag lernen Anfänger, wie man Go mit WebAssembly verwendet, was diese Technologien jetzt können und was in Zukunft möglich sein wird.

Skalieren von Go WebSocket-Verbindungen


Es gibt einige großartige WebSocket-Bibliotheken im Go-Ökosystem. Es scheint, als würden Sie Ihr Projekt auf der Grundlage einer vorgefertigten Lösung durchführen. Einige dringende Probleme müssen jedoch unabhängig voneinander gelöst werden, zum Beispiel:

  • wie man Benutzerverbindungen skaliert;
  • Was tun mit Benutzern, die keine Verbindung über WebSocket herstellen können?
  • wie man die Lebensdauer einer dauerhaften Verbindung verwaltet;
  • Was tun mit dem Verlust von Nachrichten mit kurzfristigen Verbindungsabbrüchen des Benutzers?

Und schließlich müssen Sie Ihr eigenes Protokoll über WebSocket und die Clients schreiben, die es auf allen modernen Clientplattformen implementieren. Bist du bereit dafür?

Diese Probleme werden bereits von der Centrifuge OpenSource-Bibliothek behoben, die zusätzlich zum Gorilla WebSocket viele nützliche Funktionen zum Erstellen von Echtzeitanwendungen hinzufügt. Der Autor dieses Projekts, Alexander Emelin, wird auf der GolangConf sprechen. Alexander wird Techniken und Praktiken vermitteln, mit denen Sie effektiv mit einer Vielzahl von Verbindungen arbeiten können, und erläutern, wie diese Ansätze bei der Produktion des Messenger Avito funktionieren.

Wettbewerbsfehler machen


Wir wissen (wer es noch nicht weiß, lernt bereits zu diesem Bericht), dass Go leistungsstarke und flexible Tools zum Schreiben wettbewerbsfähiger Programme bietet, aber keine strengen Regeln für deren Verwendung vorschreibt. Artikel und Berichte geben oft widersprüchliche Empfehlungen, wie man Arbeit an Goroutinen überträgt, wie man sie vervollständigt, wie man mit Fehlern umgeht ...

Ein erfahrener Gopher, Organisator von Meetings und Konferenzen, leitende Workshops und Podcasts, Alexey Palazhchenko (Percona), wird helfen, diese Probleme zu verstehen . Alexey wird ein reales Beispiel für die API geben, die sich im Verlauf des Berichts schrittweise verbessern wird und in der wir mögliche Probleme und Probleme untersuchen werden.

Mach Spiele!


Wahrscheinlich waren viele von uns am Programmieren interessiert, weil wir davon träumten, Spiele zu schreiben. Alexey Akulovich ist also im Backend komplexer VKontakte-Projekte tätig, hat aber den Wunsch nach GameDev nicht aufgegeben, sondern ihn erfolgreich mit der Entwicklung auf Go kombiniert. Jeder, der sich beim Schreiben eines Spielzeugs entspannen möchte, ohne sich auf Unity / Unreal und andere Freuden einzulassen, wird diesen Bericht nützlich finden.

Alexey zeigt uns 2D- und 3D-Desktop- / Web-Frameworks, die Möglichkeiten der handgefertigten Entwicklung und Optionen zur Erweiterung der Funktionalität, ohne die Hauptbinärdatei neu zu kompilieren. Wir werden über die Situation im Jahr 2019 sprechen, damit moderne Versionen und Trends beigefügt werden.

Gehen Sie zum Frontend


Und wenn Sie lange davon geträumt haben, Schnittstellencode ausschließlich auf GO zu schreiben, lesen Sie den Bericht von Aarushi Kansal (Tier) . Traditionell ist die coole Visualisierung und Implementierung von kreativen Ideen an der Schnittstelle von Kunst und Ideen das Vorrecht der JavaScript-Entwickler. Aarushi erklärt Ihnen jedoch, wie Sie Anwendungen und Grafiken erstellen, die in einem Browser auf Go funktionieren. Nach diesem Bericht werden Sie glauben, dass Sie Ihr Potenzial in der Front-End-Entwicklung voll ausschöpfen können, ohne Ihre Lieblingssprache aufzugeben.

So schreiben Sie ein Betriebssystem auf Go


Andrei Smirnov ist Autor zahlreicher OpenSource-Projekte und einer Meisterklasse mit dem Titel „Entwicklung zuverlässiger hoch belasteter Systeme“. Sein Vortrag bei GolangConf richtet sich hauptsächlich an diejenigen, die Kubernetes verwenden. Andrei wird über den Entwicklungsprozess des Talos-Betriebssystems und darüber sprechen, was durch den Einsatz von Go erreicht wurde. Beispielsweise dauert die Montage des Betriebssystems und der Rückkopplungsschleife durch CI nicht länger als 5 Minuten.

Wir werden sehen, wie einfache und verständliche Konzepte der wettbewerbsfähigen Programmierung in Go es Ihnen ermöglichen, den Start von Betriebssysteminitialisierungsphasen parallel und gleichzeitig in der richtigen Reihenfolge zu organisieren. Wir werden besprechen, wann Sie das System überprüfen müssen, mit dem Sie durch einfache Komponententests auskommen können, und wie die Integrationstests für das Betriebssystem aussehen. Andrei sagt, dass Go in dieser Nische eine Monopolstellung hatte. Wir werden herausfinden, warum und warum es für uns bequem ist.

Gehen Sie Integrationstests


Übrigens über Integrationstests. Trotz Berichten über ihre Vorteile und sogar einer großen Anzahl von Memen erhalten sie immer noch nicht die richtige Aufmerksamkeit. Oder ist es nur bei Gophern so, und wir haben nur Unit-Tests, die den Genen eigen sind? Wie dem auch sei, Badoo machte sich daran, Integrationstests auf Go zu schreiben, und sie haben es sehr gut gemacht. Ksenia Yakil wird Ihnen sagen, wie. Wie wird das Go-Framework für Integrationstests implementiert, welche Schwierigkeiten werden im Weg stehen und welche Ergebnisse können erzielt werden? Sie werden sehen, dass das Schreiben von Integrationstests auf Go real und nicht so schmerzhaft ist.

Wie und warum man lesbaren Code schreibt


Unabhängig davon, in welcher Sprache Sie schreiben, ist der alte Code einfacher umzuschreiben als umzugestalten. Das Traurigste ist, wenn es Ihr eigener Code ist, der „nur“ vor einigen Jahren mit Liebe geschrieben wurde.

Grigory Petrov (Evrone) liebt die Neurophysiologie und geht den Gründen auf den Grund. Sein Vortrag bei GolangConf ist ein praktischer Leitfaden zum Umgang mit Codekomplexität: Woher kommt er, warum kann er nicht entfernt werden und wie geht man damit um? Gregory wird über Zerlegung, die Installation von „Beacons“ auf verschiedene Arten, Techniken zum Schreiben nützlicher Bezeichner und das Erstellen von Fallen mithilfe von Typen sprechen. Bevor "Schreibfunktionen kürzer und Bezeichnernamen verständlicher sind", werden wir nicht untergehen :)

Im letzten Teil des Berichts werden wir den „schrittweisen“ Ansatz zum Schreiben von lesbarem Code erörtern, der nicht auf die bekannten Sprachen der „dynamischen Typisierung“ beschränkt ist.

Warum ist Golang so komisch?


Und hier, am Abend, wenn wir bereits viele Fragen der Entwicklung auf Go diskutieren und schließlich diejenigen überzeugen, die daran zweifeln, zu Go zu wechseln, wird Philip Kulin dieses Thema ansprechen: „Warum Golang so seltsam ist“ und verspricht, alles in die Regale zu stellen und zu erzählen, wie alles lief in der Tat, und wo sind Generika verschwunden.

Mitapy und Expertenzone


Sie haben vielleicht bemerkt, dass es unter den Rednern kein einziges Mitglied des Programmkomitees gibt, obwohl es sich um Community-Aktivisten handelt, die Sie sicher kennen, wenn Sie an Go-Meetings und Konferenzen teilgenommen haben. Wir haben noch etwas anderes gemacht: ausgewählte Themen, Referenten geholfen, zusätzliche Aktivitäten vorbereitet.

Mitglieder des Programmkomitees können während der Konferenz in einem speziellen Fachgebiet gefunden und befragt werden. Neulinge haben häufig Fragen, die aus irgendeinem Grund nicht gelöst werden können. Aus unbekannten Gründen bleiben sie stecken, und selbst StackOverflow hilft nicht weiter. Wir werden einen separaten Stand auf der Konferenz haben, an dem Sie Mitgliedern des Programmkomitees und Aktivisten der Go-Community solche Fragen stellen können. Kommen Sie mit Ihren Fragen und gemeinsam werden wir versuchen, sie zu lösen!

GolangConf ist Teil der Ontiko-Konferenzfamilie, was bedeutet, dass ein separater Raum für Mitaps zugewiesen wird - kleine Treffen mit engen Themen einer Gruppe von Gleichgesinnten. Dies kann eine Meisterklasse oder ein Workshop sein, aber die Hauptsache dabei ist auf jeden Fall die Kommunikation zwischen Spezialisten, die Diskussion über Schmerzen und die gemeinsame Suche nach einer Lösung. Jeder Teilnehmer kann versuchen, sein Mitap zu organisieren oder als Mitglied des Programmausschusses zu fungieren und über die Vorschläge anderer Teilnehmer abzustimmen.

Und natürlich ist die Vernetzung als integraler Bestandteil jeder Konferenz in unserem Fall besonders nützlich, da sich auf der Konferenz alle Teilnehmer irgendwie für ein Thema interessieren - Golang. Am Abend nach dem Hauptprogramm haben wir natürlich eine Afterparty und die Möglichkeit, in einer informelleren Atmosphäre Kontakte zu knüpfen.

GolangConf genau in einer Woche am 7. Oktober in Infospace freuen wir uns auf die Go-Community. Jetzt mitmachen!

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


All Articles