La dixième conférence CodeFest s'est tenue à Novossibirsk. Le programme a été très mouvementé: dix sections sur le développement, les tests, la conception, la gestion et le développement. Les employés de True Engineering décrivent les rapports depuis deux jours, nous voulons maintenant partager cet avantage avec vous.
Nous espérons que notre critique sera utile à ceux qui regarderont des vidéos de performances. Certaines des présentations ont déjà été publiées dans le domaine public, nous avons donc complété certaines revues par des liens vers celles-ci. Les rapports sont triés par sections.

La conception
Comment montrer l'interface à quelqu'un qui ne voit pas - Valeria Kurmak
Nous avons été séduits par un rapport de Valeria Kurmak de Sberbank sur l'optimisation des logiciels pour les personnes handicapées.
Le principal message du rapport est qu'en fait, il y a beaucoup de personnes handicapées. Et ce ne sont pas seulement des personnes absolument aveugles. Ce sont tous ceux qui ne voient plus aussi clairement que chez les jeunes: nos grands-parents, nos pères et nos mères. Ce sont nos amis qui ont temporairement perdu leur capacité de travailler en raison de blessures physiques. C'est de 2 à 8% des hommes qui ont du mal à percevoir les couleurs.
Mais ces personnes n'ont pas besoin d'une version distincte de votre application - tout a été inventé depuis longtemps. En rendant votre site Web évolutif, vous le rendez accessible à des millions de personnes. En utilisant des contrôles standard ou une disposition sémantique, vous aidez grandement vos utilisateurs.
Valeria en collaboration avec le personnel de Sberbank a fait une excellente ligne directrice sur ce sujet. La directive est divisée en plusieurs courts didacticiels pour différents rôles:
- pour les designers
- pour les développeurs iOS,
- pour les développeurs Android,
- pour les développeurs web
- et même pour les managers.
Vous pouvez le trouver
ici .
Backend
TCP est mort ou l'avenir des protocoles réseau - Alexander Tobol ( présentation )
Étroitement rempli de connaissances utiles, le rapport sur le périphérique de protocole TCP et les problèmes qui, dans les conditions des réseaux de communication mobiles modernes, conduisent à la limite d'utilisation et à la capacité du canal.
Chez Odnoklassniki, la livraison de contenu vidéo et de flux d'actualités joue un rôle crucial dans le succès du service. Avec un petit nombre de paquets perdus et une augmentation de la latence du réseau, son utilisation chute à près de 50%. Pour résoudre le problème, la société scie ses propres protocoles pour chaque type de trafic pour remplacer TCP. (Google fait la même chose, QUIC). Un grand respect pour les gars pour ne pas avoir peur de secouer les fondements fondamentaux.
La nouvelle norme http / 2 fonctionne également dans le cou de TCP, donc la cible correcte pour les systèmes client-serveur est http / 3, qui s'exécute au-dessus de QUIC.
En conséquence, Odnoklassniki a reçu une bonne augmentation des performances du système. La démo était une accélération multiple visuellement visible du chargement de la bande. Odnoklassniki a également été le premier au monde à diffuser des vidéos HD en direct. Exemple: pour une raison quelconque, les camionneurs américains adorent diffuser des enregistrements routiers sur le réseau. Apparemment, ils l'utilisent comme DVR.
Teamlead
Refactoring: nous convenons, planifions, mettons en œuvre! - Alexey Kataev ( présentation )
Alexey affirme qu'au cours des dix ans d'histoire de Skyeng, ils n'ont jamais réécrit leur candidature à partir de zéro. Comment maintiennent-ils la qualité du code? C'est simple - ils refactorisent :) Le rapport lui-même n'est pas du tout sur les moyens techniques de refactoring, mais sur la manière de convaincre le manager de son besoin.
La première chose que les développeurs devraient faire est de cesser de se plaindre du fait que l'application doit être refactorisée pendant longtemps, et de trouver un langage commun avec le gestionnaire et d'accepter. Bref, paramétrez à l'avance les tâches techniques de la dette dans le backlog de votre projet, évaluez-les, hiérarchisez-les et contactez le gestionnaire avec des propositions spécifiques. Et n'oubliez pas de lire le livre de Gavin Kennedy, Vous pouvez vous mettre d'accord sur tout!
La deuxième idée importante du rapport est de ne pas mentir. N'incluez pas la refactorisation dans les évaluations des fonctionnalités. Cela rend le processus de développement moins transparent. Vous courez le risque de vous complaire dans la refactorisation, car vous arrêtez de surveiller le temps passé dessus.
Alex a également expliqué comment ils utilisaient les robots télégrammes pour planifier la refactorisation, et a également partagé quelques listes de contrôle et une liste de principes de son équipe. Je tiens à le remercier à nouveau pour l'une des présentations les plus utiles sur Codefest X.
À propos du chauvinisme d'ingénierie: dégoûtant d'être un manager - Eugene Kot
Rapport premium, troupes de théâtre nerveusement envieuses. L'orateur est très talentueux, il vaut la peine de prêter attention à ses autres rapports. Une magnifique présentation sous la forme d'une histoire sur les problèmes psychologiques de la transformation d'un ingénieur en chef d'équipe.
Recommandé pour une visualisation régulière pour ceux qui choisissent entre la gestion et l'approfondissement de l'architecture et posent des questions:
- Si je deviens chef d'équipe, je ne serai pas réclamé,
- Si je deviens chef d'équipe, je ne pourrai pas coder,
- Si je deviens chef d'équipe, où dois-je me développer?
L'orateur leur a répondu et a également introduit l'abréviation "Syndrome S.O.S.O.": peur, désespoir, honte, aliénation. Et plus loin sur tous les jeux de mots, j'ai compris d'où venaient ces émotions et comment les gérer.
Mobile
iOS Tout est MVC: pourquoi avons-nous besoin d'autres architectures? - Evgeny Rtishchev
Un rapport très riche selon lequel MVC dans iOS n'est pas perçu par beaucoup comme complètement correct, et que ce n'est en fait pas mal. Fait intéressant, il y a quelques années, Eugene a fait un
rapport contre MVC sur Mobius , puis a tout re-réalisé. Il a examiné différents types de contrôleurs avec des exemples du SDK, les avantages de cette architecture et a expliqué où les racines des problèmes qui ressortent lorsque l'on travaille avec MVC se développent.
Conseils qu'Eugene partage:
- utiliser 4 types de contrôleurs,
- partager les responsabilités
- éviter la cohésion
- conception à partir du modèle,
- changements d'interface rapides et faciles,
- contrôleur de vue massive - un problème farfelu.
Il est particulièrement intéressant d'écouter le rapport lorsque vous avez déjà essayé MVCC, MVVM, MVP, VIPER ou d'autres architectures et de partager la douleur et les avantages qui existent dans chacune d'elles. Cela me fait de plus en plus penser que, dans l’ensemble, ce n’est pas le nom du modèle architectural.
Tests d'interface utilisateur iOS E2E: beaucoup, verts et sur Pull Request - Artyom Razinov
Artyom a expliqué qu'en réduisant le volume des tests de régression obligatoires et en augmentant le volume des tests d'interface utilisateur, l'équipe a considérablement réduit le temps des tests de régression d'une grande application et a commencé à être publiée plus souvent.
Il a été utile de connaître les techniques et les techniques pouvant être utilisées pour obtenir des résultats optimaux. Je m'en souviens particulièrement:
- évaluer la pertinence des tests d'interface utilisateur en fonction de la fréquence des versions et du temps de mise à jour des tests,
- Analyse d'impact, pour ne pas exécuter tous les tests à chaque fois,
- courses complètes régulières,
- paralléliser les tests pour accélérer.
Nous recommandons ce rapport aux développeurs mobiles.
Android Instant Apps, deux ans plus tard - Evgeny Saturov
En 2017, un outil tel que Instant Apps a été introduit - en termes simples, il s'agit d'une application à lancement instantané. Surf a eu un accès anticipé à cette fonctionnalité.
Eugene a expliqué les problèmes rencontrés dans le processus de développement et de test. Tout d'abord, il y avait un SDK sévère fourni avec une archive zip. Deuxièmement, il n'y avait aucune documentation. Il était également nécessaire de résister à des exigences strictes dans l'architecture de l'application. L'application ne pouvait pas peser plus de 3 Mo et devait être divisée en modules.
Après le développement, deux ans plus tard, Google a introduit une autre solution - Android Dynamic Feature Delivery, qui vous permet de faire à peu près la même chose, mais avec des limitations différentes. Le nouveau SDK n'est pas non plus particulièrement stable, difficile à tester et a un tas de bugs et de béquilles. L'une des principales limites est que vous devez donner à Google votre clé avec laquelle l'application est signée.
Eugene a partagé des conseils sur ce qu'il faut lire et comment résoudre tous ces problèmes. Il a parlé de son expérience avec Dynamic Feature Delivery, résumant le fait que c'est toujours une chose brute.
Android Outils pour résoudre les problèmes dans une grande équipe - Vladimir Tebloev
Sberbank dispose d'une grande équipe de développement Android - plus de 100 personnes travaillent sur un projet. À un moment donné, l'équipe a commencé à se développer et les développeurs ont dû en quelque sorte contrôler. Dans le rapport, Vladimir a partagé un ensemble de pratiques et de conseils qui peuvent aider à interagir avec l'équipe, même si moins de personnes y travaillent.
Par exemple, les nouveaux employés se voient toujours attribuer un mentor. Pour les débutants, il existe une base de connaissances: des guides sur la conception, l'architecture, la convention de code, l'organisation des tests et de la documentation dans Confluence - tout est écrit jusqu'au clonage d'un projet.
Cela ne signifie pas que tout est limité à une seule pile. Pour les nouvelles technologies, l'entreprise développe les bonnes et les mauvaises pratiques dans des modules séparés, puis élabore un guide sur l'utilisation de cette technologie. Le processus est structuré comme suit: ils ont essayé, écrit des pratiques, prouvé le besoin de cette technologie, après quoi l'équipe la met en service.
Une idée intéressante de Vladimir que parfois une dictature est un mal nécessaire. Si vous écoutez et essayez de plaire à chacune des 130 personnes, rien de bon n'en sortira. Parfois, vous devez dire de façon normative: «Nous le faisons». Cette certitude est également diffusée par ces guides.
Les produits
Comment l'intelligence artificielle se transforme en nouvelle électricité - Ivan Yamshchikov
Le rapport est du très Ivan Yamshchikov qui a participé à la création du réseau neuronal, qui a écrit
plusieurs chansons dans le style de Yegor Letov.
L'auteur pense que l'intelligence artificielle va changer notre monde autant qu'il l'a été par le passé par l'électricité. Le principal message pratique du rapport était qu'il était grand temps de commencer à réfléchir à ce qui pouvait être automatisé à l'aide de l'intelligence artificielle. À une certaine époque, l'électricité a permis d'automatiser de nombreuses industries qui utilisaient auparavant la force physique. Maintenant, l'intelligence artificielle peut remplacer les personnes dans l'activité intellectuelle, par exemple, dans le travail avec des documents. L'intelligence artificielle ne se fatigue pas, de grandes quantités de données sont à sa disposition et elle ne se trompe pas.
Le rapport vous donne le sentiment que l'avenir est déjà là.
Frontend
Immergé dans le Web - Luis Diego Gonzalez Zuniga
L'orateur a parlé de ce qu'est le Web immersif (immersivité - créer l'effet de l'immersion, de la présence). Le navigateur Samsung, selon ses statistiques, se classe quatrième en Russie. Cela peut sembler étrange, mais cela est peut-être dû au fait que le navigateur par défaut est installé sur le nouveau Samsung.
En général, nous parlons de l'intégration de la réalité virtuelle (WebXR) dans les navigateurs. Le résultat est un navigateur avec un large éventail de fonctionnalités, y compris divers manettes de jeu, joysticks, etc. à l'intérieur de lui.
Gonzales a également parlé des différences entre la réalité virtuelle (réalité virtuelle) et la réalité augmentée (AR) et de la manière dont il forme ensemble la XR. Selon lui, "XR couvre des plateformes et des contenus où l'utilisateur peut prendre des objets numériques pour la réalité, ou, au contraire, voir des objets physiques présents dans la scène numérique". L'orateur a également montré comment activer le mode de réalité virtuelle dans le navigateur Samsung. Lors de la démonstration, j'ai attrapé un bug, mais m'a assuré que "tout fonctionnait avant le rapport".
En conséquence, ce qui est montré semble vraiment intéressant. Nous attendons que de telles décisions soient rendues publiques et il sera possible d'installer l'application ou le navigateur sur n'importe quel smartphone.
Jusqu'à ce que le rapport soit publié, le site Web immersif de Samsung se trouve
ici .
L'avenir
Tendances de l'impossible - Evgeny Chereshnev ( présentation )
Evgeny Chereshnev - Chercheur et journaliste informatique, participant à la conférence TED New York. Le rapport était parfait pour ouvrir la section Future. Dans ce document, Eugene a abordé des sujets auxquels nous ne pensons pas dans la vie de tous les jours, mais qui nous attendent dans un avenir peut-être proche. En général, il s'agissait d'innovation.
Il y a plusieurs pensées de base:
- Nous sommes tous uniques depuis la naissance, mais le système nous ajuste à la communauté. Une personne qui a su garder l'enfant en lui conserve la curiosité inhérente aux enfants, et avec elle la possibilité de rechercher et d'inventer quelque chose de nouveau. Ces personnes sont désignées dans le rapport comme "l'enfant qui a survécu".
- L'innovation n'est possible que dans les petites entreprises, les startups. Les grandes entreprises, comme les personnes, avec l'âge et la croissance perdent leur capacité à introduire quelque chose de vraiment nouveau, car c'est trop risqué pour elles.
- Les problèmes d'innovations dans les startups russes sont principalement dus au fait qu '«un ingénieur russe n'est généralement pas une question d'argent», ce qui signifie que de nombreuses entreprises brûlent au tout début simplement parce qu'elles pensent dans une catégorie de «faites-le cool», mais pas de manière rentable. Chereshnev dit que vous devez être en mesure de vendre le produit - «d'abord de l'argent, puis du code».
- L'une des principales réflexions du rapport et de Codefest dans son ensemble est que bientôt l'intelligence artificielle sera partout. Les robots commenceront progressivement à déplacer une personne, car il n'est pas nécessaire, par exemple, pour un travailleur dans une usine, si un robot le fait mieux, ce qui n'a toujours pas besoin d'être payé. En réponse à ces tendances, l'orateur dit que l'ADN humain est le même code, les mêmes données, ce qui signifie que vous pouvez travailler avec eux. Le seul moyen pour l'humanité de continuer à exister en mode normal est de se transformer, de s'améliorer en tant que code. Eugène lui-même, par exemple, a déjà implanté une puce dans sa main. Qui sait, peut-être que dans 50 ans nous serons tous de petits cyborgs.
De plus, Eugene a déjà parlé de tendances plus prononcées - ce qui va se développer dans un avenir proche:
- Eco-énergie
- Médecine automatisée (le bot répondra aux plaintes des patients, donc la nécessité d'une visite chez le thérapeute disparaîtra),
- L'éducation omnidirectionnelle (dans un avenir proche, une personne n'aura pas de spécialité, il devra avoir plusieurs spécialités à la fois pour basculer entre elles à temps).
Eugene a terminé son rapport en disant que l'innovation est inévitable et que l'évolution "s'étend à tout, vivant et non vivant".
Pourquoi être bon pour tout le monde n'est pas trop bon. Et ce ne sera pas - Alexander Orlov
«Pourquoi êtes-vous bombardé par les paroles et les actions de certaines personnes? Pourquoi ne pouvez-vous pas insister pour parler à quelqu'un? "
Ceci est un rapport utile sur les cartes de la réalité, sur la confrontation constructive, sur les besoins que nous satisfaisons dans le processus de travail, sur la façon de passer de l'irritation à l'intérêt, de "J'ai raison, mais vous n'êtes pas" à "pourquoi est-ce comme ça avec vous?" Il sera utile à tous ceux qui interagissent avec d'autres personnes, c'est-à-dire généralement à tout le monde!
C'est drôle que le lendemain, la technique dont Alexander a parlé soit utile: avant de tirer des conclusions et d'être bouleversé, vous pouvez dire directement vos attentes et demander pourquoi la personne à qui vous parlez ou pense différemment. Il se peut alors qu'il n'y ait aucun problème et que vous ayez simplement une vision différente.
Problèmes non technologiques des produits «intelligents» - Andrey Servant ( présentation )
Le rapport était consacré au fait qu'il ne suffit pas de trouver quelque chose d'innovant, qu'il s'agisse d'intelligence artificielle ou de véhicules sans pilote - il est important de préparer les gens au fait que les innovations ne sont pas dangereuses et profiteront à la société.
Sebrant identifie trois points principaux sur la façon de préparer les gens à l'innovation:
- vous n'avez pas besoin de parler du produit de la même manière que vous le diriez à votre collègue développeur - une personne qui n'est pas plongée dans le sujet, ce n'est pas clair,
- dans les communications avec les consommateurs, l'accent ne doit pas être mis sur la rationalité, mais sur les émotions, pour faire du produit une source d'émotions pour le consommateur,
- le produit de l'utilisateur final doit être magique, pas un instrument.
Les véhicules sans pilote sont un exemple de cette innovation. Maintenant, il est facile de trouver sur Internet combien de craintes ces voitures provoquent - elles ne sont pas sûres, elles déplaceront des gens, tomberont dans des accidents, elles ne sont pas faites pour les routes russes et ainsi de suite.
Sebrant dit que ces voitures sont devenues de la "nouvelle électricité" - elles avaient aussi peur de l'électricité, et maintenant nous ne pouvons pas imaginer notre vie sans une ampoule courante.
Il a parlé de l'expérience de la gestion des émotions en utilisant l'exemple d'un taxi sans pilote développé par Yandex. Les premiers tests sur les routes ont été effectués avec un chauffeur à l'intérieur, qui s'est assis et n'a rien fait - la voiture s'est conduite. Une telle démonstration n'a pas impressionné les téléspectateurs non préparés. La présence d'une personne à l'intérieur de la voiture suggère que c'est lui qui contrôle la voiture.
Les tests suivants ont été effectués sur un terrain d'entraînement fermé, où il était possible de démarrer la voiture sans chauffeur. L'occasion d'en faire l'expérience a été offerte à tous les mêmes gens ordinaires qui étaient spectateurs la dernière fois. L'effet d'une voiture en mouvement avec un siège conducteur vide est difficile à décrire. Les gens ont regardé la même voiture d'une manière complètement nouvelle - l'effet même de «magie, pas un outil» a été créé.
Trois petits cafards en route vers un grand avenir - Maxim Dorofeev
( présentation )
Le rapport était sensiblement différent des autres rapports de la section Futur: il ne parlait pas de l'avenir, mais de ce à quoi nous sommes confrontés chaque jour - pourquoi nous sommes fatigués, pourquoi nous n'avons pas le temps de faire quelque chose, pourquoi nous ne grandissons pas, etc. Les principales causes de ces problèmes quotidiens, Dorofeev les appelle "trois cafards".
- Le premier cafard: "Ce n'est pas urgent, puis plus tard." L'erreur de beaucoup de gens - il y a des tâches urgentes, il n'y a pas de tâches urgentes. La séquence de leur mise en œuvre est le plus souvent déterminée uniquement par un indicateur d'urgence, mais pas d'importance - c'est faux.
- Le deuxième cafard: "Maintenant, je vais le découvrir avec une bagatelle." Vous venez le matin et commencez à faire des tâches peu à peu, chacune prenant environ 10-15 minutes, et par conséquent il y en a beaucoup et il n'y a plus de temps pour quelque chose de vraiment important.
- Troisième cafard: "Et s'il y a quelque chose d'urgence?" La situation est sûrement familière à tout le monde - vous travaillez et en même temps quelqu'un vous envoie une lettre ou un message sur Skype avec une sorte de tâche "importante" - vous êtes distrait, tout a été fait et rien n'a été fait. Il y a aussi un effet de fausse importance - au moment où la tâche vous semble plus importante qu'elle ne l'est, vous l'envoyez à quelqu'un de plus, à cette personne elle commence à sembler encore plus importante. À la fin de la chaîne, un développeur effrayé commence dans une panique à effectuer rapidement et rapidement cette tâche initialement sans importance.
Dorofeev dit que nous devons tous éviter de rencontrer ces cafards au travail et dans la vie en général.
Une idée importante du rapport est également la division des tâches en «rouge» et «vert». Les tâches «rouges» sont des tâches urgentes, dont l'échec sera suivi d'une sanction inévitable. Les tâches «vertes» sont des tâches intéressantes et importantes pour le développement, qui sont généralement reportées en raison du chiffre d'affaires. Il vaut mieux, ayant les tâches «rouge» et «verte», faire les deux au moins d'une manière ou d'une autre, mais pour obtenir un résultat plus utile que de faire uniquement la tâche «rouge», mais bien.
D'une manière générale, le rapport contenait un grand nombre de conseils pratiques au quotidien, classés très accessibles et avec humour. Ces rapports doivent être surveillés.
La voiture du futur. Nous analysons Tesla pour des solutions d'ingénierie et des idées révolutionnaires - Igor Antarov
Le rapport est presque impossible à raconter au format texte - la présentation contient un grand nombre de documents, une histoire sur Mask, sur ce qu'il fait sauf Tesla, etc. Passons en revue les faits les plus intéressants:
- Les voitures électriques peuvent conquérir le monde pendant 15 ans,
- L'économie sera économique et respectueuse de l'environnement - grâce aux véhicules électriques,
- , , , ,
- « » : c , , , .
:
- .
- , .
- , 10
- , – .
, ( ), , , , ( ).
. , – , .
– Continuous Integration. , IT-. , ?
30 . 10 . 2 —
, CodeFest « ». , .
, : – , ( , ), – - , , – , .
. , , .
:
:
- -
- -
- driverless ( )
- -
- Deep Space Comms ( )
- ( )
- Drifting Cities: ,
- /
- :
- : ( , , )
- VR-, ( , )
- Full-Time ( , , )
- VR-
- Time-travel Experience ( « » « », , , )
- ( HR – )
:
, , , , .