EventsInterview

Software Engineering Conference Russia 2018

By 15 novembre 2018 No Comments
Software Engineering Conference Russia 2018 - Webnet Actualités

Architecte technique certifié Symfony, Vladyslav est un habitué des meetups technologiques. Retour d’expérience sur la Software Engineering Conference Russia (SECR) pour laquelle il a animé le thème de « SOLID: the principles of success of Symfony framework and your applications »

Était-ce pour toi la première intervention en tant que speaker ?

Sans compter les exposés que j’ai faits pendant mes études, j’ai déjà eu l’expérience de présenter différents sujets au public. J’ai notamment fait l’intervention au meetup mensuels de deux associations dont je suis le membre : Association française des utilisateurs de PHP (AFUP) et Association francophone des utilisateurs de Symfony (AFSY). J’y ai abordé la problématique de sécurisation des applications web, de patrons de conception, etc. Je présente également souvent des thèmes intéressants lors de nos réunions technologiques internes de pôle PHP de Webnet.

Comment es-tu arrivé à la SECR ? Est-ce que c’est la première fois que tu allais à Moscou ?

Au début, c’était un voyage purement touristique que j’avais planifié depuis le printemps. J’avais l’intention d’y passer une semaine avec mes proches pour découvrir cette grande ville pour la première fois. Entre temps, j’ai vu que la conférence SECR tombait pendant mon séjour. J’ai donc décidé de proposer mon talk aux organisateurs et ils l’ont accepté.

Qu’est-ce que la SECR ?

SECR signifie “Software Engineering Conference Russia”. C’est une conférence très réputée qui a lieu chaque année à Moscou depuis 2005. Parmi les conférenciers les plus connus cette année, on peut mentionner Bjarne Stroustrup, Erich Gamma, Richard Soley, Grady Booch, Lars Bak et Bertrand Meyer.

Quelles thématiques ont été abordées pendant la conférence ?

Les thématiques étaient très variées et touchaient tous les domaines informatiques : Intelligence artificielle, Blockchain, Business, Cloud, livraison continue, Science des données, Big Data, DevOps, systèmes embarqués, UX, design, systèmes très chargés, Internet of things, open source, programmation/outils, gestion de projet, sécurité, architecture de logiciel, vérification de logiciel, analyse de système, interfaces vocales.

Le public cible de la conférence était vaste : programmeurs, analystes de système, ingénieurs de qualité, architectes de logiciel, spécialistes du personnel, chefs de projet, chefs de production, entrepreneurs en technologie, représentants de milieux universitaires engagés dans la recherche dans le domaine de l’informatique, étudiants,etc.

Quel thème t’a le plus particulièrement intéressé ? Pourquoi ? As-tu retenu quelque chose qui va te servir au quotidien ?

En tant qu’architecte technique, j’étais particulièrement intéressé par les talks portant sur l’analyse de l’état actuel et avenir des architectures web. Mais la valeur de SECR en tant que conférence multi-domaine réside principalement dans la possibilité de découvrir les autres aspects de produits informatiques et le processus de leur création. Les talks sur la gestion de projets et l’organisation de développement me semblaient très utiles. L’intervention sur les bonnes pratiques de formation était très pertinente pour moi parce que je mène quelque cours de formations internes au sein de Webnet.

Sur quel thème es-tu intervenu ?

Mon sujet s’intitulait « SOLID: the principles of success of Symfony framework and your applications ». J’ai d’abord présenté le framework Web Symfony et ses fonctionnalités, puis j’ai parlé des principes de SOLID. Enfin, j’ai examiné chaque principe séparément en prenant l’exemple de composants Symfony pour voir comment leur implémentation est bénéfique.
SOLID est un acronyme dont chaque lettre représente un principe important du développement de code orienté objet. D’une part, ces principes permettent de créer des composants réutilisables, flexibles, faciles à évoluer et à comprendre. D’autre part, ils permettent d’éviter des choses désagréables telles que la fragilité des programmes, la duplication de code, la complexité excessive, etc. En tant que développeur certifié Symfony, j’ai voulu baser la présentation de principes SOLID sur mon expérience de développement d’applications Symfony de Symfony lui-même.

Peux-tu détailler les principes SOLID mis en avant dans ta présentation ?

Le principe de responsabilité unique stipule que chaque module ou classe doit avoir la responsabilité d’une seule partie de la fonctionnalité et que cette responsabilité doit être entièrement encapsulée dans la classe. À un moment donné, les développeurs de Symfony ont séparé la service SecurityContext en deux services distincts : AuthorizationManager et TokenStorage. Cette solution a considérablement réduit le risque de dépendance circulaire lorsque vous utilisez des services d’authentification et d’autorisation.
Le principe ouvert/fermé prescrit de laisser les entités ouvertes pour extension, mais fermées pour modification. Cela signifie que vous devez pouvoir modifier ou ajouter un comportement aux classes, fonctions et modules sans apporter de modifications à leur code source. Symfony étant un framework extrêmement flexible, il implémente de nombreux patrons de conception et techniques pour rester en conformité avec ce principe.
Le principe de substitution de Liskov prévoit que les objets peuvent être remplacés par leurs sous-types ce qu’est le simple polymorphisme. Mais il y a une précision importante : le programme doit rester correct. La correction d’un programme est menacée lorsque vous choisissez des mauvaises abstractions ou une hiérarchie de classe erronée. Ce principe est mieux décrit sur l’exemple de sa violation. Heureusement, aucune erreur de ce type n’a été commise dans Symfony lui-même. J’ai donc montré comment les éviter lors du développement d’applications avec Symfony, notamment un ajoutant son Voter de sécurité ou Listener de Doctrine.
Le principe de ségrégation des interfaces dit que les nombreuses interfaces orientées client sont préférables à une vaste interface à usage général. Aucun client ne devrait dépendre de méthodes qu’il n’utilise pas. J’ai pris l’exemple de Conteneur de services et de Router de Symfony qui implémentent de multiples interfaces et j’ai montré que la multitude des petites interfaces est une meilleure solution.
Le principe d’inversion de dépendance est un moyen de découpler des modules de haut niveau et de bas niveau. Il suggère d’inverser la dépendance traditionnelle des modules de haut niveau aux modules de bas niveau. Mais au lieu de simplement inverser la dépendance, ce principe plaide pour l’introduction d’un niveau d’abstraction dont tous les modules dépendent. Presque toutes les classes de tous les composants Symfony dépendent les unes des autres uniquement via des interfaces et via une injection de dépendance.

Comment trouves-tu le temps d’être speaker en plus de ton poste d’architecte technique à Webnet ?

En réalité, cette activité interfère assez peu avec le temps que je passe au bureau. Je prépare mes interventions après le travail, « after hours », comme on dit. En outre, les meetups d’AFSY et d’AFUP ont toujours lieu le soir vers 19h. Je dirais qu’il faut être passionné pour trouver le temps et la motivation.
Cependant, le poste d’architecte technique me fournit la matière précieuse que je convertis en bonnes interventions.

Pour résumer, ce week-end c’était comment pour toi ?

Mes vacances étaient un bon moment de changement d’air, de nouvelles découvertes et de temps passé avec mes proches. Moscou est une ville très riche en attractions touristiques de toutes sortes. J’en ramène beaucoup de souvenirs et d’émotions. La conférence SECR reste toujours un événement chaleureux à la hauteur de toutes attentes.

Merci Vladyslav pour ton témoignage !
Les slides de la conférence sont en ligne ici