[:fr]La parole est aux speakers : Nicolas De Boose[:]

Publié le

[:fr]Jusqu’au Forum PHP 2019, 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 clean architecture : pourquoi ? Comment ? Pour qui ?

Les frameworks et librairies externes sont une bénédiction pour les développeurs : cela nous permet de gagner du temps, d'utiliser du code (généralement) de qualité, et de nous concentrer sur ce qui est vraiment important: la vraie logique qui rapporte de la valeur!

Cependant, tout vient avec un coût...

A y regarder de plus près : qui est vraiment "le plus important" dans l'histoire? Le framework dicte ses lois: Vous devez "extend" ses classes, rajouter ses annotations, suivre sa structure de dossiers, etc... C'est une sorte de mariage forcé. Au début, tout est beau... Mais un mariage, c'est fait pour durer ! Quand la "mariée" décide de déprécier et ensuite supprimer ce que vous aimez chez elle (ou pire : elle n'est plus maintenue), vous vous retrouverez paralysé avec une version obsolète, par peur de casser votre fameuse logique métier...

Ca ne peut plus durer ! Dans ce talk, on parlera de tout ce que j'aurais aimé qu'on me dise sur la clean architecture avant de commencer

Comment controler le framework, plutôt que lui ne vous contrôle ? Comment arriver à ce que le framework et vos librairies ne soient qu'un détail d'implémentation ?

Vous aurez en prime :

  • Du code clair
  • Une architecture claire, qui fonctionne sur du back-end comme du front-end
  • Du code facilement testable unitairement... Plus besoin de "booter" votre framework pour tester vos vues
  • Plus aucune peur de passer de mettre à jour une librairie, voire de la changer
Grace Hopper
24/10/2019
10:15-10:55

Comment as-tu connu la Clean Architecture ? Quelles ont été tes ressources, quels livres ont pu t’inspirer ?

J’ai découvert la Clean Architecture en parcourant le blog et les vidéos de Robert Martin/Uncle Bob. À l’époque, je n’avais pas entièrement compris toutes les subtilités de cette architecture et il n’y avait pas encore beaucoup de ressources disponibles à ce sujet. Je n’y ai donc pas porté beaucoup d’attention.

Il y a deux ans, je suis passé sur un projet assez conséquent écrit en Typescript. L’idée était de ne pas adopter un framework. J’en ai profité pour me pencher plus sérieusement sur cette clean architecture. J’ai re-regardé la vidéo d’Uncle Bob et relu son article plusieurs fois. Je suis aussi tombé sur un de ses repo git qui contient 2-3 exemples intéressants ainsi que sur une de ses conférences. Son livre apporte aussi quelques réponses, mais il est dispensable. Enfin, il y a également quelques articles/vidéos intéressant(e)s de développeurs IOS et Android qui m’ont aidé à y voir plus clair (comme celle-ci ou celle-ci).

Pour me faire la main, j’ai commencé un side project où je me suis mis quelques contraintes (le front et l’api doivent partager la même logique). À force de faire des essais/erreurs et de questionner Google sur des thèmes très spécifiques, je suis arrivé à affiner mes connaissances. Ce n’est pas toujours évident si on veut en extraire l’idée de base car les gens changent parfois un peu l’architecture selon leur envie ou besoin.

Les frameworks s’organisent de plus en plus de façon modulaire, et notamment Symfony. Pour toi qu’est-ce que cela apporte au niveau de la façon d’architecturer nos applications ?

Je pense que cette modularité une excellente chose. Au final, le framework Symfony (4) n’est “que” le ciment entre toutes ses librairies. Cependant, bien que ce soit très modulaire, ça ne veut pas dire que nous posons correctement les frontières (”boundaries”) dans notre application.

En effet, on retrouve des annotations d’ORM, mélangées à celles des validations dans des entités qui sont disponibles dans les vues en passant par des controllers qui ”catch” de potentielles exceptions provenant de nos services…

Au final, bien que le framework soit modulaire, notre code l’est-il vraiment ?

Tu bénéficies du programme d’accompagnement des speakers : comment en as-tu entendu parler ?

À la base, c’est via Pascal Martin sur Twitter. Lors de ma proposition de conférence, j’ai vu cette option et je me suis dit “J’ai déjà donné quelques conférences, mais je suis certain que je vais apprendre plein de choses” 🙂

Une conférence présentée par

Nicolas DE BOOSE
Nicolas DE BOOSE
Nicolas a découvert la programmation en 1997 en mettant en ligne ses premiers sites internet sur “multimania” et “citeweb”. Cette passion ne l’a jamais quitté depuis. Curieusement, chaque projet sur lequel il a été impliqué concernait du code legacy important. Il y a pris goût et adore “upgrader” le code ainsi que les équipes de dev. À part cela, il a une femme qu’il aime de tout son coeur et fait un peu de sport: kitesurf et tennis.

Autres interviews

[:]