Le 17 mai dernier, c'était l'AfupDay. Nous étions présent à celui de Lyon par l'intermédiaire de 4 de nos développeurs. L'occasion de faire un petit compte rendu de cette journée.
L'AFUP organisait pour la première fois cet évènement PHP qui sur une seule journée, et en simultanée dans trois villes, Lille, Lyon et Rennes, proposaient différentes conférences. Sur Lyon, c'est 9 conférences et 1 table ronde sur le rôle de CTO auquels nous avons pu assister et sur lesquels nous vous proposons ce retour.
Au menu de la journée des sujets vraiment techniques :
LARAVEL : THE GOOD, THE BAD AND THE UGLY..., par Stéphane Hulard, qui nous explique comment boostraper rapidement un projet et utiliser la puissance du framework. L'idée de ce talk est de s'ouvrir à différents frameworks/technos pour savoir faire le bon choix en fonction des projets/contextes.
OVH.COM FROM 1999 TO 2019, par Aurélien Damien (DevOps Senior) et Flavien Chantelot (Architecte DevOps). Migration du site vitrine (legacy de 20 ans) pour faciliter la mise à jour des contenus et mettre en place de la haute dispo en utilisant des "anciennes" technologies mais qui sont robustes et qui ont fait leurs preuves. Ce retour d'expérience nous permet de réfléchir à la nécessité de toujours vouloir utiliser les dernières technologies/outils.
L'ARCHITECTURE PROGRESSIVE, par Matthieu Napoli, nous rappelle qu'il est important de bien prendre en compte le contexte du projet pour définir l'architecture et qu'il faut être pragmatique. Par exemple, découper le projet en modules par niveau de criticité.
Niveau critique, on utilise des patterns, on met en place des tests, etc
Niveau faible, on reste simple, on peut affecter le module à une équipe plus junior.
La conclusion serait : « Mieux vaut faire trop simple que trop compliqué »
EXPLOREZ VOTRE CODE AVEC DE L'ANALYSE STATIQUE, par Julien Deniau, ou comment rendre votre code moins buggué, plus simple et plus facile à comprendre grâce à PHPStan.
ALICE ET BOB SONT SUR UN BATEAU, par Gabriel Pillet, nous présente les bonnes pratiques en matière de fixtures et les bundles Alice et Faker pour avoir un jeu de données complet, réaliste, avec du volume et randomisé.
Mais également deux sujets non techniques :
JE NE CONNAIS AUCUNE AUTRE FEMME QUI FAIT DU PHP, AU SECOURS ! par Marine Gandy, ou il était question de la faible représentation des femmes dans le monde du développement back et comment inverser la tendance.
NEUROATYPIE ET IT : QUELQUES CONSEILS par Alex Rock avec place des neuro-atypiques dans l'IT, les comprendre pour travailler avec.
Et pour ce retour, nous allons faire un focus sur deux conférences qui nous ont particulièrement marquées :
QUEL EST LE RAPPORT ENTRE TCP, UDP ET LA PROGRAMMATION ORIENTÉE OBJET ? par Frédéric Hardy, conférence sur laquelle Benoit Jouhaud nous donne son avis complet.
Cette conférence m'a particulièrement intéressé. Frédéric Hardy, le speaker, nous rappelle (ou nous apprend ?) que la manière dont nous développons au quotidien n'a rien à voir avec la programmation orienté objet telle qu'elle a été pensée et conçue originellement.
Ce que nous faisons aujourd'hui s'apparente à de la programmation procédurale encapsulée dans des classes, où le "client" (la classe appelante) a connaissance du fonctionnement des services auxquels elle fait appel, et pire, est chargée de piloter ces services pour leur faire faire ce qu'elle veut.
Le concept original s'apparente plutôt à un fonctionnement bio-cellulaire où les cellules (objets) communiquent ensemble en s'envoyant des messages par le biais d'interfaces, et comptent sur leurs homologues pour remplir leur fonction de manière autonome.
Le titre de la conférence fait ainsi le parallèle entre la programmation objet telle qu'on la conçoit majoritairement aujourd'hui qui fonctionne sur le principe du TCP (protocole de communication synchrone avec accusés de réception), et la programmation objet telle qu'elle avait été conçue qui fonctionne sur le principe de l'UDP (protocole de communication asynchrone où un message est diffusé et traité par les récepteurs qui le veulent bien).
Ramené à la programmation, cela signifie qu'un objet ne devrait avoir pour seules méthodes publiques que des méthodes décrivant ce qu'il se passe quand un client l'appelle, mais pas de méthodes d'accéder à ses propriétés internes (getters/setters). Par exemple, une classe `Dog` n'aurait pas de méthode publique `expressHappiness()`, mais plutôt une méthode publique `isThrownABall()` dans laquelle il serait libre de montrer sa joie, ou sa colère, ou son indifférence sans que cette décision n'appartienne au client qui l'appelle.
Une guideline indiquée par le speaker consiste à s'interdire purement et simplement de faire d'avoir des méthodes qui `return` des valeurs ou qui `throw` des exceptions. Il ne devrait pas non plus y avoir plus d'un niveau d'indentation dans une méthode et il faut éviter les `else` au maximum.
En évitant les `return` et les `throw`, l'information circule uniquement de la gauche vers la droite, ou "d'ouest vers l'est". C'est pourquoi, un courant appelé "East programming" est en train de naître.
Pour plus d'informations, vous pouvez retrouver les slides de la conférence quand elles paraîtront, ou regarder les liens suivants :
https://thesecretsquad.wordpress.com/2014/10/25/dazed-and-confuzzled/
http://jamesladdcode.com/
https://github.com/jamesladd
https://github.com/estvoyage/
LES MERVEILLES MÉCONNUES DU SQL par Lætitia Avrot, conférence que Romain Guyon a bien apprécié.
Un talk particulièrement intéressant sur un langage de programmation parfois ou même souvent méconnu des développeurs. L'utilisation des ORMs comme Doctrine nous facilite la vie pour requêter une base de données et pour mapper des données sur des objets.
Il y a pourtant plusieurs points négatifs à l'utilisation des ORMs :
Dans ce talk, Lætitia Avrot, DBA et experte PostgreSQL, nous rappelle que SQL est bien un langage de programmation et un langage très puissant quand on en connaît les fonctionnalités :
Voici les slides du talk et quelques références sur le sujet :
https://l_avrot.gitlab.io/slides/sql.html#/
https://pgexercises.com/
https://modern-sql.com/
http://theartofpostgresql.com/
En résumé, ce fut pour nous une journée très intéressante avec de bons conférenciers et des sujets variés et de très bons financiers à la pistache :D