AFUP AFUP Day 2020 Baromètre Planète PHP

La parole est aux speakers : Alexandre BALMES

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.

Le speaker

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

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :