Mitap: Quarantaine, partez

Bonjour Ă  tous! Le 30 mai sera le deuxième mitap en ligne sur Go. Les organisateurs sont les gars des communautĂ©s de Go Yola et Golang Kazan . Voyons comment organiser les tests des microservices, quelle est la meilleure façon d'implĂ©menter DI on Go, pourquoi le gopher est bleu et comment survivre avec du code go-swagger gĂ©nĂ©rĂ© automatiquement. 

Vous trouverez quatre rapports concentrés des développeurs de MTS, iSpring, Percona et Toggl, le quiz Go et beaucoup de communication en direct. Sous la coupe se trouvent des résumés de rapports, un lien vers la diffusion vidéo et des interviews avec des conférenciers. Ne changez pas!


En direct le 30 mai 


Nous commençons sur la chaĂ®ne YouTube iSpring Tech le 30 mai Ă  16h00. C'est samedi. Chaque rapport est un contact direct avec les intervenants: posez des questions par la voix, Ă©crivez pour discuter. Après chaque discours, nous ouvrons une salle de rĂ©union dans laquelle vous pourrez discuter du sujet en dĂ©tail. Les discussions et les questions chaudes sont les bienvenues. 

Ă€ la fin du mitap - un quiz sur lequel vous pouvez tester votre force dans la connaissance de Go :)

Connectez-vous au mitap → Le

programme mitap complet →

4 rapports chauds sur Go



Services (micro) de test - Alexey Palazhchenko, Percona


- Avantages et inconvénients des tests de microservices;
- que faire de l'authentification et de l'autorisation;
- comment ne pas laisser tomber les tests prod.

Pourquoi avez-vous choisi ce thème?


Les gens l'ont choisi :) Nous avons tenu un vote ouvert parmi les développeurs sur un choix de sujets. Elle a réuni 85 personnes. La plupart ont voté pour les tests.

Qu'est-ce qui vous manque le plus sur Go?


Enum'ov et vérification complète de toutes les valeurs ou types dans le commutateur / boîtier. Les linters ne résolvent ce problème que partiellement. Générique en deuxième place - commutateur de type pour tous les types de base que j'écris plus souvent que je ne le souhaiterais.

Que diriez-vous Ă  Rob Pike lors de votre rencontre?


Pourquoi? Je l'ai interviewé :)


L'injection de dépendance et ses amis (en Go) - Anton Kucherov, Toggl


- que sont DIP, IoC et DI;
- quels problèmes sont résolus à l'aide de ces concepts;
- Un certain nombre d'options pour implémenter DI in Go.

Pourquoi avez-vous choisi ce sujet?


Parce que depuis très longtemps je m'inquiète de la question: "Pourquoi notre code finit-il par devenir un gâchis et comment y résister?"

Parlez-nous de votre plus grand montant sur Go


Une fois, j'ai refactorisĂ© un projet hĂ©ritĂ©. Il a utilisĂ© activement la concurrence. Il n'y avait aucune documentation ou spĂ©cification. Au cours du travail, j'ai mis la variable Token dans le champ de la structure HttpClient. Il m'a semblĂ© qu'il s'agit d'un jeton d'accès au microservice courant. Il s'est avĂ©rĂ© - c'Ă©tait un jeton associĂ© Ă  l'utilisateur. 
Lorsque le changement a frappé la production, certains utilisateurs ont reçu des données d'autres. Il fallait de toute urgence prendre une partie du système pour la maintenance et nettoyer rapidement la base de données des données qui avaient fui. Il est bon que les données ne soient pas personnelles - il était impossible de les associer à des personnes spécifiques.

Que diriez-vous Ă  Rob Pike lors de votre rencontre?


Bonjour heureux de vous rencontrer.


Architecture propre dans l'automatisation »- Sergey Shambir, iSpring


- l'automatisation en tant que processus;
- comment appliquer les principes de l'architecture pure pour elle;
- Expérience iSpring dans l'écriture d'utilitaires d'automatisation sur Go.

Dites quelque chose qui n'est pas inclus dans le rapport, mais illustre parfaitement le sujet.


Le code de nombreux outils DevOps populaires est Ă©crit en Go. Elle ne brille pas toujours de puretĂ©. Par exemple, dans le code docker et kubernetes, il existe de nombreux appels de panique. Bien que l'utilisation sans but de la panique soit considĂ©rĂ©e comme une mauvaise pratique dans Go. 
Je suis sûr qu'avec une architecture propre, les projets open source sur Go attireraient plus de contributeurs. Il est beaucoup plus facile d'améliorer un projet qui n'est pas transformé en un gâchis par des dizaines de variables globales, des packages étroitement liés et des fonctions monstrueuses en violation du principe de responsabilité unique.

Parlez-nous de votre plus grand montant sur Go


Une fois, avec des collègues, nous avons Ă©crit un backend pour un Ă©diteur d'articles. C'Ă©tait au stade Testing & Fixing, lorsque le testeur l'a remarquĂ© - le matin, les donnĂ©es de tous les articles disparaissent. Il s'est avĂ©rĂ© qu'un autre service envoie une liste d'articles Ă  supprimer par cron tous les soirs. S'il n'y avait rien Ă  supprimer, il a envoyĂ© une liste vide. Et dans notre service, une liste vide signifiait «supprimer tous les articles». 

Depuis lors, je conseille à tout le monde dans toutes les méthodes d'API pour modifier / supprimer des données de toujours exiger un indicateur indiquant que toutes les entrées sont affectées. Ou introduisez une méthode distincte qui supprime / modifie tout.

Que diriez-vous Ă  Rob Pike lors de votre rencontre? 


Je demanderais pourquoi le gopher est bleu.


Go-Swagger en productivité: hauts et bas »- Ilya Kaznacheev, MTS


- comment go-swagger simplifie le développement de l'équipe;
- Comment accélérer le travail sur le code passe-partout;
- pourquoi le code généré vous oblige à danser sur votre air et comment y faire face.

Pourquoi avez-vous choisi ce sujet?


Dans plusieurs entreprises, je suis confronté à l'utilisation de go-swagger. Et cela implique toujours des astuces et des hacks. Je veux les partager avec la communauté afin que les gens n'aient pas à reconstruire un vélo déjà construit.

Dites quelque chose qui n'est pas inclus dans le rapport, mais illustre parfaitement le sujet.


Une fois, j'ai participĂ© Ă  un hackathon avec une Ă©quipe. Dans un premier temps, nous avons rĂ©alisĂ© une application avec un backend sur Go et un frontend sur iOS. En consĂ©quence, près des deux tiers du temps ont Ă©tĂ© occupĂ©s par le processus d'Ă©change d'informations sur les modifications de l'API et la mise en Ĺ“uvre de l'API sur le backend. 
Lors de la deuxième étape, nous avons également réalisé une application sur Go et iOS. Cette fois, j'ai utilisé swagger pour décrire l'API et go-swagger pour générer l'infrastructure de serveur pour cette API. Cela a sauvé 6 heures. Grâce à cela, j'avais déjà terminé la partie serveur et j'ai pu dormir normalement la nuit.

Votre version, pourquoi le gopher blue?


Malade dans l'enfance :)

Rendez-vous le 30 mai en direct. Et pour ne pas manquer le début, abonnez-vous à la chaîne YouTube iSpring Tech, rejoignez Go Yola et Golang Kazan . Ici, nous publions des rapports chauds de mitaps.

PS Et pourtant, pourquoi le gopher blue? Écrivez votre version dans les commentaires.

All Articles