Courez, Gopher, courez! - de quoi parlerons-nous à GolangConf

Nous avons promis 5-6 raisons de passer à Go, et c'est arrivé! Lors de la conférence GolangConf, entièrement consacrée au Go, le 7 octobre, 5 reportages porteront la mention «Switching to Go» pour ceux qui vont ou commencent à utiliser cette langue dans leurs projets.

Mais ce n'est que le début. Dès la première fois, nous avons réussi à mettre en place un programme très solide et diversifié qui répond aux besoins de trois catégories de participants: les développeurs Go professionnels; ceux qui viennent de passer à Go; ingénieurs d'infrastructure et utilisateurs d'outils écrits en Go.



Le programme de la conférence comprend 21 rapports , une session de rapports de blitz et des mitaps. À tout moment, les invités de la conférence pourront choisir parmi 3-4 sujets différents et trouver quelque chose d'intéressant pour eux-mêmes. Je pense même que le choix et l'impossibilité de déchirer entre les flux seront plus pertinents (c'est bien que tout soit sur la vidéo plus tard). Dans le même temps, des sujets intéressant une variété de spécialistes seront abordés dans différentes salles.

Nous consacrerons beaucoup d'attention aux meilleures pratiques pour travailler avec Go et tout code en général. Nous discuterons des problèmes de performances et de diverses choses hardcore avec des gophers expérimentés. Pour les ingénieurs d'infrastructure, il y aura également des rapports intéressants. Le blocage des modes d'utilisation non standard de Go ne laissera personne indifférent. De plus, il y aura jusqu'à deux rapports sur le développement du frontend on Go, tous deux de locuteurs étrangers.

On peut dire que le frontend est une direction expérimentale. La production front-end n'est pas souvent écrite sur Go, le plus souvent WebAssembly est essayé dans de petits projets personnels. Les conférenciers que nous avons invités seront en mesure de présenter plus que simplement comment commencer à utiliser WebAssembly. Ce sont des rapports approfondis, construits sur une expérience personnelle, ils montreront que la vie peut se faire sur WebAssembly, et comment l'utiliser dans vos projets.

Haut-parleurs GolangConf


Le comité de programme a abordé la sélection des sujets et des intervenants de manière très stricte. La plupart de nos conférenciers sont connus dans la communauté Go, mais en même temps, il y a de nouveaux visages. Quand de temps en temps aux conférences les mêmes personnes parlent, c'est un peu ennuyeux. Je veux voir un nouveau look, de nouveaux défis, de nouveaux intervenants. Nous avons réussi à attirer du sang frais, et ils ont également des rapports très intéressants basés sur l'expérience pratique. Par exemple, j'attends avec intérêt le rapport de Ksenia Yakil.

La sélection des locuteurs étrangers a été presque plus difficile, car il y avait de nombreuses applications de leur part. Mais nous savons qu'il peut être difficile pour notre public d'écouter de nombreux reportages en anglais. 8 à 9 rapports par jour représentent déjà une grande quantité de nouvelles informations, et lorsque vous devez faire des efforts supplémentaires en raison de la langue pour les comprendre, cela devient très difficile. Par conséquent, nous n'avons que trois rapports en anglais, mais ce sont les plus.

En fait, la communauté mondiale de Go est très sympathique et prête à partager ses expériences. Nous avons reçu une très bonne réponse lorsque nous avons ouvert l'appel à communications sur PaperCall.io et annoncé une conférence dans la communauté internationale Go sur Slack et Twitter. Certes, nous n'avons pas réussi à attirer les superstars de la communauté mondiale, leur calendrier des événements est prévu pour l'année à venir. Mais nous avons alors des plans ambitieux pour le prochain GolangConf.

Cette année, nous aurons 21 rapports de classe. Ici, je vais parler de plusieurs d'entre eux, et pour les informations complètes et le calendrier, allez sur le site Web de la conférence.

Analyse de similitude du code Go appliqué


Iskander Sharipov (VKontakte) a travaillé dans le passé sur un compilateur Go et un réglage tiers pour lui - des analyseurs statiques et des utilitaires de refactoring. Il prévoit désormais de porter de nombreux outils créés pour Go to the PHPosystem. Vous pouvez probablement poser des questions sur cette expérience colossale d'Iskander en marge, et son rapport intéressera principalement ceux qui réfléchissent aux problèmes de traitement du code Go:

  • Comment trouver des fonctions et des méthodes en double dans votre base de code.
  • Éviter de réinventer les fonctionnalités de la bibliothèque standard Go.
  • Comment simplifier l'analyse du Go-code au niveau syntaxique.

La clé pour répondre à ces questions est la normalisation des programmes Go, et c'est à ce sujet que nous discuterons dans le rapport. Mais pas en mots, mais en pratique - considérez une bibliothèque pour normaliser le code Go et plusieurs de ses applications pratiques.

Commencez avec WebAssembly


Contributeur de Go Johan Brandhorst viendra à Moscou pour nous présenter WebAssembly et montrer comment commencer avec WebAssembly et Go. WebAssembly est pris en charge dans les navigateurs depuis près de deux ans maintenant et a été inclus dans Go en tant qu'expérience depuis la version 1.11. Peut-être qu'il peut même remplacer JavaScript dans le navigateur et devenir ce même langage, dont le code peut fonctionner n'importe où.

Après cet exposé, les novices apprendront à utiliser Go avec WebAssembly, ce que ces technologies peuvent faire maintenant et ce qui deviendra possible à l'avenir.

Mise à l'échelle des connexions Go WebSocket


Il existe d'excellentes bibliothèques WebSocket dans l'écosystème Go. Il semblerait - prendre et faire votre projet, en prenant comme base une solution toute faite. Cependant, plusieurs problèmes urgents devront être résolus indépendamment, par exemple:

  • comment faire évoluer les connexions des utilisateurs;
  • que faire des utilisateurs qui ne peuvent pas se connecter via WebSocket;
  • comment gérer la durée de vie d'une connexion permanente;
  • que faire de la perte de messages avec des déconnexions à court terme de l'utilisateur.

Et enfin - vous devrez écrire votre propre protocole sur WebSocket et les clients qui l'implémentent sur toutes les plates-formes clientes modernes. Êtes-vous prêt pour ça?

Ces problèmes sont déjà traités par la bibliothèque open source Centrifuge, qui ajoute de nombreuses fonctionnalités utiles au-dessus du Gorilla WebSocket pour la création d'applications en temps réel. L'auteur de ce projet, Alexander Emelin, prendra la parole à GolangConf. Alexander enseignera des techniques et des pratiques qui vous permettent de travailler efficacement avec un grand nombre de connexions et expliquera comment ces approches fonctionnent dans la production du Messenger Avito.

Faire disparaître les erreurs de la concurrence


Nous savons (qui ne sait toujours pas, il connaîtra déjà ce rapport) que Go fournit des outils puissants et flexibles pour écrire des programmes compétitifs, mais ne dicte pas de règles strictes pour leur utilisation. Les articles et les rapports donnent souvent des recommandations contradictoires sur la façon de transférer le travail aux goroutines, comment les terminer, comment gérer les erreurs ...

Un gopher d'expérience, organisateur de réunions et de conférences, animant des ateliers et des podcasts Alexey Palazhchenko (Percona) aidera à comprendre ces questions. Alexey donnera un véritable exemple de l'API, qui s'améliorera progressivement au cours du rapport et sur laquelle nous explorerons d'éventuels problèmes et problèmes.

Allez faire des jeux!


Probablement, beaucoup d'entre nous étaient intéressés par la programmation, car nous rêvions d'écrire des jeux. Alexey Akulovich est donc engagé dans le backend de projets VKontakte complexes, mais il n'a pas laissé le désir de s'engager dans GameDev, mais l'a combiné avec succès avec le développement sur Go. Quiconque souhaite se détendre en écrivant un jouet sans entrer dans Unity / Unreal et d'autres joies trouvera ce rapport utile.

Alexey nous montrera des cadres de bureau / web 2D et 3D, les possibilités de développement à la main et des options pour étendre les fonctionnalités sans recompiler le binaire principal. Nous parlerons de la situation en 2019, afin que les versions et tendances modernes soient jointes.

Optez pour le frontend


Et si vous rêvez depuis longtemps d'écrire du code d'interface exclusivement sur GO, venez au rapport d' Aarushi Kansal (Tier) . Traditionnellement, la visualisation et la mise en œuvre de créations créatives, à la jonction avec l'art, les idées sont la prérogative des développeurs JavaScript, mais Aarushi vous expliquera comment créer des applications et des graphiques qui fonctionnent dans un navigateur sur Go. Après ce rapport, vous penserez que vous pouvez pleinement révéler votre potentiel en développement frontal sans renoncer à votre langue préférée.

Comment écrire un système d'exploitation sur Go


Andrei Smirnov est l'auteur de nombreux projets open source et d'une classe de maître intitulée «Développement de systèmes fiables hautement chargés». Son discours à GolangConf est principalement destiné à ceux qui utilisent Kubernetes. Andrei parlera du processus de développement du système d'exploitation Talos et de ce qui a été réalisé grâce à l'utilisation de Go. Par exemple, l'assemblage du système d'exploitation et la boucle de rétroaction via CI ne prennent pas plus de 5 minutes.

Nous verrons comment des concepts simples et compréhensibles de programmation compétitive dans Go vous permettent d'organiser le lancement des phases d'initialisation du système d'exploitation en parallèle et en même temps dans le bon ordre. Nous verrons quand vérifier le système que vous pouvez obtenir avec de simples tests unitaires et à quoi ressemblent les tests d'intégration pour le système d'exploitation. Andrei dit que Go s'est retrouvé en position de monopole dans ce créneau. Nous allons découvrir pourquoi et pourquoi cela nous convient.

Allez aux tests d'intégration


Soit dit en passant, sur les tests d'intégration. Malgré les rapports de leurs avantages et même un grand nombre de mèmes, ils ne reçoivent toujours pas l'attention appropriée. Ou est-ce seulement chez les gophers, et nous avons juste des tests unitaires inhérents aux gènes? Quoi qu'il en soit, Badoo a décidé d'écrire des tests d'intégration sur Go, et ils l'ont très bien fait. Ksenia Yakil vous expliquera comment. Comment mettre en œuvre le cadre Go pour les tests d'intégration, quelles difficultés se présenteront et quels résultats peuvent être obtenus. Vous verrez que l'écriture de tests d'intégration sur Go est réelle et moins pénible.

Comment et pourquoi écrire du code lisible


Peu importe la langue dans laquelle vous écrivez, il arrive que l'ancien code soit plus facile à réécrire qu'à refactoriser. Le plus triste, c'est quand c'est votre propre code, écrit avec amour «il y a seulement quelques années».

Grigory Petrov (Evrone) aime la neurophysiologie et aller au fond des raisons. Son exposé à GolangConf est un guide pratique pour gérer la complexité du code: d'où vient-il, pourquoi ne peut-il pas être supprimé et comment y faire face. Gregory parlera de décomposition, d'installation de «balises» de diverses manières, de techniques pour écrire des identifiants utiles, de création de pièges à l'aide de types. Avant «d'écrire des fonctions plus courtes et des noms d'identificateurs plus compréhensibles», nous ne descendrons pas :)

Et dans la dernière partie du rapport, nous discuterons de l'approche «graduelle» de l'écriture de code lisible, qui ne se limite pas aux langages de «typage dynamique» familiers.

Pourquoi Golang est-il si bizarre


Et ici, dans la soirée, alors que nous allons déjà discuter de nombreuses questions de développement sur Go, enfin convaincre ceux qui doutent de passer à Go, Philip Kulin soulèvera ce sujet: «Pourquoi Golang est si étrange» et promet de tout mettre sur les étagères et de dire comment tout se passait en fait, et où les génériques ont-ils disparu.

Mitapy et zone expert


Vous avez peut-être remarqué qu'il n'y a pas un seul membre du comité de programme parmi les conférenciers, bien qu'il soit composé de militants communautaires que vous savez avec certitude si vous étiez aux réunions et conférences Go. Nous avons fait autre chose: des sujets choisis, aidé des conférenciers, préparé des activités supplémentaires.

Les membres du comité de programme pendant la conférence peuvent être trouvés et interrogés dans un domaine d'expertise spécial. Souvent, les nouveaux arrivants à Go ont des questions qui, pour une raison quelconque, ne sont pas résolues, pour lesquelles, pour une raison inconnue, ils sont bloqués, et même StackOverflow n'aide pas. Nous aurons un stand séparé à la conférence où vous pourrez poser ces questions aux membres du comité de programme et aux militants de la communauté Go. Venez avec vos questions, et ensemble nous essaierons de les résoudre!

GolangConf fait partie de la famille de conférences Ontiko, ce qui signifie qu'une salle séparée sera allouée pour les mitaps - petites réunions à thème étroit d'un groupe de personnes partageant les mêmes idées. Cela peut être une classe de maître ou un atelier, mais l'essentiel en tout cas sera la communication entre spécialistes, la discussion des douleurs et la recherche conjointe d'une solution. Chaque participant peut essayer d'organiser son mitap ou agir en tant que membre du comité de programme et voter sur les propositions des autres participants.

Et, bien sûr, le réseautage en tant que partie intégrante de toute conférence dans notre cas sera particulièrement utile, car lors de la conférence, tous les participants seront en quelque sorte intéressés par un sujet - Golang. Dans la soirée après le programme principal, bien sûr, nous aurons une afterparty et l'occasion de discuter dans une atmosphère plus informelle.

GolangConf exactement dans une semaine le 7 octobre dans Infospace, nous avons hâte de voir la communauté Go. Rejoignez-nous maintenant!

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


All Articles