[:fr]La parole est aux speakers : Cyrille GIQUELLO[:]

Publié le

[:fr]Jusqu’à l’AFUP Day 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Valider les données sans copier/coller

Je dois valider les données quand on me les présente via l'API, mais aussi via les Controller. Ah mince, je dois encore les valider sur le Client pour plus d'UX ... Hop, je vais copier/coller les règles. Non! Ce n'est pas bien ! Nous allons voir en application avec Laravel comment n'exprimer qu'une seule fois les règles de validation des Models et comment elles seront automatiquement exploitées dans le Back (PHP) et dans le Front (Javascript).

En ligne
03/07/2020
15:10-15:30

Tu fais partie des personnes qui poussent l’Open Source, comment ça se traduit dans ton travail et avec tes équipes?

Dans mon quotidien il y a deux façons de pousser de l’Open Source.

Il y a tout d’abord, et principalement, la contribution aux projets de code libre : tous ces logiciels et librairies que nous utilisons en permanence (et à tour de bras 😉 ). Quand on a perdu du temps à cause d’un manque de documentation, et bien en échange de tout ce travail que l’on n’a pas eu à faire, on prend du temps pour enrichir cette documentation ; Quand un bug nous rend fou depuis des heures, on prend (encore) le temps de le déclarer sur le bugtracker avec la description du problème, le moyen de le reproduire. Et si après des heures de surchauffe neuronale on a trouvé un correctif, on prend le temps de discuter sur le bugtracker, et mieux, quand c’est possible, de proposer un pull-request.
D’autre part, d’un aspect plus « politique », je propose toujours aux clients de publier nos travaux sous licence libre (et en open source). Ce n’est bien entendu pas toujours possible car des fonctionnalités (rarement techniques d’ailleurs) apportent une valeur concurrentielle que les clients n’ont pas envie de partager, ce qui peut se comprendre. Mais quand il s’agit d’un projet financé par des fonds publics alors là j’insiste très fortement pour que le travail réalisé soit « libéré ».
Les codes libres nous apportent énormément de savoir-faire, pour apprendre et gagner en compétence, pour l’utiliser et gagner du temps (et de l’argent), alors je trouve injuste de ne pas contribuer en retour par de la documentation, des corrections, des traductions…

Tu fais du Java, du PHP, et du JS. Que t’a appris le fait de coder dans plusieurs langages ?

Effectivement, ce sont mes 3 technologies de prédilection.

Alors « autrefois » quand PHP était bébé, il était vraiment un langage de « template » qui n’avait pas vocation à implémenter des règles de gestion mais de faciliter la vie pour construire des pages web. À cette même époque pour faire du Web, j’utilisais aussi le langage Perl pour lequel existait tout plein de packages super efficaces, ainsi que le serveur Zope en Python qui apportait le concept de « serveur d’application ». À l’époque, les dinosaures étaient déjà morts, mais PHP n’était vraiment pas dans le viseur des « informaticiens ».
Pour la « vraie » informatique j’utilisais Java qui fonctionnait partout, même avec AIX sur des main-frame IBM. Java apportait un langage objet fortement typé facilitant son industrialisation, un environnement de serveur d’application avec toute l’abstraction nécessaire à des services répartis et interopérables (ORM, RPC, SOAP, Message Queue, Cache, JMX…). Pour des éléments très spécifiques comme la cryptographie, le multi-threading, les communications inter-applications Java c’était le top. Avec JNDI on pouvait même lui ajouter du code en C/C++.
Et puis sont arrivés quelques créateurs de code autour du berceau de PHP, comme Zend Technologies (Zend Framework) et Fabien Potencier (Symfony), et l’histoire de PHP pouvait changer de cap. Je suivais les avancées, je commençais à réaliser des projets en PHP en complément des projets en Java, et je me suis retrouvé ainsi à pratiquer les 2 technos au quotidien pendant de nombreuses années. Mais depuis 3 ans c’est PHP qui a gagné mon quotidien et je ne fais quasiment plus de Java. Effectivement, les frameworks et le langage PHP ont tellement évolué qu’ils sont opérationnels pour des usages professionnels et industrialisés. Son éco-système est assez mûr pour remplir les mêmes missions qu’avec Java, même s’il n’a pas tous ses atouts.
Et pour le Javascript ? Dans les années 2000 on faisait du Front web avancé avec Flash (et son ActionScript) puis Flash est mort, alors je fais du Javascript, c’est incontournable.

Quelle importance donnes-tu à la validation des données dans le développement d’un projet ?

Ah! Le sujet qui fait « ch**r » les devs qui n’ont pas compris que le code c’est de la manipulation de données, et que ces données sont bien souvent la finalité de notre travail.

Plus sérieusement, aujourd’hui les projets sont fait de programmes multi-tenants: un peu de pages web, quelques scripts, des endpoints d’API et pourquoi pas quelques applis métiers. Une conception du code en architecture n-tiers est donc nécessaire, à minima selon le Model-Vue-Controller extrapolé à tous les étages. Les données se déplacent et se transforment au fil des échanges entre modules, librairies, SGBD(R) et autres acteurs ; ce qui rend nécessaire de s’outiller pour en assurer la maîtrise. Ajoutons la contrainte du « Time To Market » qui demande souvent des changements de structure des données.
Ma réponse est clairement : la validation des données a une importance primordiale.
Ma contribution à l’AFUP Day portera donc sur la capitalisation de cette validation des données : comment en éviter au maximum sa re-définition dans les différentes « couches » composant le projet. Je présenterai ma façon de penser et pratiquer la chose avec un exemple d’implémentation, en PHP of course, utilisant quelques librairies libres.

Depuis le temps que tu en fais, tu as dû en voir des vertes et des pas mûres: quelle est la validation la plus farfelue que tu as pu rencontrer ?

Je ne retrouve pas les farfelues dans ma mémoire, mais c’est sûr qu’il y en a.
Me revient à l’esprit:
– des visiteurs refusés par une plateforme parce que leurs noms chinois ne comportaient qu’un ou deux caractères ;
– la troncature silencieuse des `varchar` par MySql détectée qu’après plusieurs semaines de collecte de données …

Une conférence présentée par

Cyrille GIQUELLO
Cyrille GIQUELLO
Un intérêt certain pour des TICs et des hommes. Tombé dès son plus jeune âge dans la soupe à octets, c’est avec dextérité que Cyrille Giquello pourra interagir avec vos systèmes d’information, qu’ils soient hétéroclites ou classés EAL3, en créant du code en Java ou PHP à base de logiciels libres.

Autres interviews

[:]