Ayant pour habitude d’aller aux sfPots et sfLives parisiens, j’ai voulu sortir de ma zone de confort en allant à une conférence organisée principalement par une partie de la communauté .Net: NCrafts. C’est une conférence internationale autour du Software Craftsmanship qui cherche à réunir les craftsmen et craftswomen d’Europe et d’ailleurs. On y a parlé de code, d’apprentissage, d’expérience, de bonnes pratiques de développement.

Toutes les vidéos sont disponibles ici.

Les talks qui m’ont le plus marqué

Continuous delivery - the missing parts” par Paul Stack

(slides) (vidéo)

Ancien développeur passé du côté Ops, Paul commence par nous faire un rappel de ce qu’est le Continuous Delivery, en nous rappelant les principes et les pratiques derrirère les buzz-words. Il enchaine en clarifiant quelques croyances, puis nous explique ce qu’est le DevOps pour lui: la collaboration entre les équipes de développement et opérationnelles accrue et systématique, via indicateurs, monitoring et automatisation.

Crafted Design - an introduction to Interaction-Driven Design (IDD)” par Sandro Mancuso

(slides) (vidéo)

J’avais déjà entendu parlé de Sandro, au travers de ma veille technique, car c’est une personnalité très visible et active dans tout ce qui touche au DDD et au Software Craftsmanship.

Pour lui, et je suis entièrement d’accord, la structure d’une application est cruciale pour sa compréhension et son evolutivité.

Il débute en listant quelques problèmes liés à l’oganisation du code:

  • la structure des packages
  • domaine et archi/concepts design mélangés
  • un nouvel arrivant a du mal à savoir où changer le code

Pour lui, ne pas savoir où mettre la logique métier est souvent la source de mauvais design. Le DDD est justement là pour aider à structurer la modélisation du domaine. Il préfère que ses domain services soient les éléments les plus importants dans son domaine, et non pas les entités. Les services d’infrastructures et repositories ne sont pas des first class citizens. Il nomme ses repos par rapport à ce qu’ils représentent, par ex Users et non UserRepository. Il oriente son arbo vers des concepts domaine, et non plus vers des couches telles que repo, entity, etc

Concernant le DDD, il préconise surtout de ne pas appliquer à la lettre, mais de prendre ce qui marche pour son équipe.

The Silver Bullet Syndrome” par Hadi Hariri

(vidéo)

Hadi livre un talk plein d’humour et de dérision pour nous parler d’un problème inhérent aux technologies de l’informatique: cette necessité que nous avons à inventer de nouvelles technos pour résoudre des problèmes que nous n’avons pas vraiment. Il nous établit donc une chronologie pleine d’humour de ce phénomène, par ex: les abstractions nous ont fait penser que les ORMs sont une mauvaise chose, mais en fait, le problème ne vient pas des ORMs, il vient des bases de données relationnelles, donc le NoSQL est né; mais le problème vient de la plateforme, alors on passe du .Net à Node; OO vs FP; microservices; etc

Le truc, c’est que l’on adore les nouvelles technos qui sont censées être tellement mieux que les précédentes: Angular, React, Docker…

Le problème avec tout ça, c’est que les développeurs, qui aiment les nouvelles technos, en oublient que ce ne sont que des outils qui doivent servir à générer du revenu avant tout. Il conseille donc de bien garder le contexte lors des choix technologiques, avant de conclure que ce que l’on doit retenir, c’est ce que l’on a accompli, pas quels outils on a utilisé.

Layers considered Harmful” par Christian Horsdal

Un talk qui discute de la pertinence d’avoir systématiquement les mêmes couches applicatives horizontales, sources de friction et de complexité parfois inutile, alors que des tranches verticales (bounded contexts), avec juste les couches necessaires selon les besoins, seraient peut être une meilleure approche.

Pour y parvenir, il compare plusieurs schémas de ce que doit comporter une application back métier, dite d’entreprise. Son constat est clair, la multiplication des couches horizontales:

  • peut nuire en termes de performances
  • peut nuire en termes de time to market
  • allonge le temps de procéder à des changements, car il faudrait potentiellement toucher à plusieures couches
  • résulte souvent en l’accumulation de dépendances

J’ai aimé la façon qu’il a eu de parler du besoin derrière les microservices, sans parler de microservices.

Bilan

Ce que je préfère dans les conférences, ce sont les rencontres que l’on fait via des discussions avec des personnes que l’on ne connait pas, ou que via internet. J’ai ainsi pu discuté avec certains speakers tels que Sandro Mancuso, Mathias Verraes, Paul Stack et Christian Horsdal notamment. Sandro m’a donné quelques conseils pour apporter du changement chez des clients réticents, j’ai discuté legos (nos enfants ont le même âge) et CQRS avec Mathias, comment était perçu l’évolution de l’écosystème PHP du point de vue d’un ancien dev .Net devenu Ops, et le fait de sensibiliser les devs à la prise de recul.

Je n’ai croisé que 2/3 devs PHP, mais ça n’a pas vraiment eu d’importance, les talks n’étaient pas vraiment orientés outils et technique, mais plutôt orientés sur des pratiques qui méritent peut être plus d’attention, en tout cas dans la communauté PHP.