[:fr]La parole est aux speakers : Alexandre BALMES[:]

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

La programmation défensive ou l'art de ne pas se faire confiance

Douze années d'expérience dans les métiers du développement PHP : beaucoup de ressenti, des succès, des échecs. Des projets internes, pour des tiers, des audits, de la formation, seul, (dans|au dessus|a coté) d'une équipe. Bref, un lot d'aventures qui forgent le caractère.

Tout cela a profondément marqué ma façon d'écrire des lignes de code, ajusté mon critère "qualité" et plus généralement, ma façon de concevoir des applications PHP. Comment est-ce que j'en suis arrivé à ne plus faire confiances aux autres (moi compris) et pourquoi ? Qu'est-ce que je cherche à garantir au travers de cette approche du développement ?

Nous verrons ensemble comment utiliser les règles de la programmation défensive et comment "protéger son code" dans le but d'en assurer la pérénnité tout en garantissant les objectifs suivants : un niveau de qualité sur le long terme, la possibilité de faire des évolutions simplement et un code sur lequel on aime intervenir.

En ligne
24/06/2020
09:20-10:00

Concernant ta conférence, est-ce qu’à l’image des tests, il est challengeant de trouver le juste milieu entre ne rien faire et surprotéger un code ?

Il y a nécessairement un juste milieu et c’est forcément sympa de réussir à le déterminer/trouver. Lorsque l’on aborde le sujet de la programmation défensive (et qu’on l’embrasse pleinement) on aborde surtout des sujets de conception, de qualité et donc de schémas directeurs.
Alors oui, si on fait un parallèle direct avec les tests, on peut prendre un cas d’école avec la validation d’un argument de type array : est-ce que l’on doit valider que l’argument est un array ? Que l’array doit contenir N clés ? Que chacune des clés attendues s’y trouve, etc. Malgré tout, le fait est que ce n’est qu’une petite partie du scope couvert par la programmation défensive parce que le problème n’est peut-être pas le contenu de l’array mais le simple fait d’utiliser un argument d’entrée qui est un array et à ce moment on parle de conception.
Ce qui est certain c’est que l’évolution naturelle de PHP et de sa communauté tendent vers la qualité. Toutes les pratiques sont donc naturellement plus défensives qu’avant. Ne rien faire sous-entend donc qu’on ne développe absolument pas suivant l’état de l’art et là on touche un autre problème.

Tu as indiqué passer régulièrement du temps à lire la documentation de frameworks à des fins de veille technologique. As-tu des recommandations de ressources concernant la programmation défensive afin de connaître l’état de l’art sur le sujet ?

Étrangement non. Il n’y a pas vraiment de littérature précise sur ce sujet, il n’y a rien qui me vient immédiatement à l’esprit. Il faut aller voir dans les ouvrages sur les tests, sur la qualité, sur le « clean »… pour tomber sur des chapitres où l’on vous explique tout simplement que faire son métier correctement, c’est aussi être « défensif » parce qu’être défensif c’est écrire des tests, de la documentation, un code SOLID, abstraire/composer… Et ne pas faire confiance aux développeurs·euses/aux données entrantes.
Je le disais dans la présentation de la conférence, mais il faut bien comprendre que pour arriver au niveau de conclusion qui m’amène à ce que je fais actuellement : c’est 5 à 6 projets par an, pendant presque 15 ans, en collaboration avec des équipes différentes à tout point de vue, et ça forge le caractère.
Spoiler publicitaire : les formations arrivent chez Vanoix cette année alors viens, on s’amusera bien ensemble à parler de conception, d’architecture et de programmation défensive. Ca fera une très bonne ressource sur le sujet ?.

Tu nous proposes régulièrement des sujets lors de nos CFP. Cette année est la bonne ! Quelle est la recette selon toi pour un bon sujet ?

Alors là pour le coup… Je n’ai pas réussi à caser une conférence pendant un moment et pourtant j’ai essayé plusieurs fois ?.
En l’occurrence pour l’AFUP Day 2020 :
– J’ai fait relire le texte que j’ai proposé à trois personnes différentes en rectifiant ma copie à chaque retour ;
– Il n’y avait pas de thème, mais je demande toujours s’il y en a un pour me donner des chances supplémentaires ;
– Plus le temps passe, plus je pense que la légitimité est importante pour aborder certains sujets donc j’ai mis quelques sujets qui me tiennent à cœur (décentralisation et éthique par exemple) de côté plutôt que de chercher à tout prix à les caser.

Une conférence présentée par

Alexandre BALMES
Alexandre BALMES
Amoureux du web, cofondateur de Vanoix : un regroupement d’experts PHP “mais pas que”. Alexandre travaille sur des projets legacy dont les autres devs ne veulent pas. Conséquence directe, il possède un certain caractère, n'est pas toujours d'accord avec tout le monde mais globalement, on l’aime bien (même quand il dit des bêtises).

Autres interviews

[:]