Rehia, le blog

Old and recent learnings and thoughts

Ce portfolio référence les conférences que j’ai eu l’occasion de donner. J’y ai mis les vidéos quand elles existaient, et les slides quand je les ai retrouvés :)

Des callbacks à async/await, une histoire asynchrone

Ce talk a été donné lors du meetup Montpellier JS de Janvier 2019.

Abstract

Pendant longtemps, JavaScript s’en est tenu au principe de callbacks pour la gestion des appels asynchrones. Dans son histoire récente, JS s’est armé pour simplifier l’écriture d’un code qui s’éxecute de manière asynchrone, en lui donnant un aspect synchrone, grâce à async/await.

Mais comment en est-on arrivé là ? Quelles avancées ont permis d’obtenir cela ?

Nous verrons cela lors d’une session de live coding pour revenir ou présenter quelques concepts clés de JS, comme les promesses, ou la plus belle évolution de JS depuis sa création : les générateurs.

Vidéo

Slides

Pas de slides ! ¯\_(ツ)_/¯


Mind the gap!

J’ai donné ce talk lors de l’Agile Tour Montpellier 2018. L’objectif était d’expliquer les problèmes que l’on n’a toujours pas réglé en agile.

Abstract

La collaboration entre experts techniques et experts du domaine métier n’est pas toujours évidente. Il existe un écart évident, à différents niveaux, entre ces deux groupes de personnes. Or, arriver à les faire collaborer pour que le besoin de l’un soit solutionné par l’autre est un des enjeux majeurs.

Très tôt, avec l’agile, beaucoup de bonnes pratiques et d’ateliers ont émergé pour tenter de réduire cet écart. Les User Stories avec leur critère d’acceptation, les ateliers de Story Mapping, ou de Sprint Planning en sont des exemples. Mais ils ne solutionnent pas tous les problèmes, notamment ceux liés à la conception même du produit.

Je vous propose donc de découvrir quelques pratiques et ateliers à ajouter dans votre boite à outils, et à tester dès demain, pour améliorer la communication entre experts techniques et experts du domaine, les amener à collaborer plus efficacement, et faciliter le travail de conception de la solution.

Vidéo

Slides

https://rehia.github.io/mind-the-gap/


DDD à la rescousse des architectures microservices ?

J’ai eu l’occasion de donner ce talk lors d’un meetup chez SmartView, puis lors de la 1ère édition de Sunny Tech, en juin 2018.

Abstract

Les architectures basées sur les microservices ont le vent en poupe. Tout le monde veut en faire. Les promesses en terme de bénéfice sont très séduisantes. Mais implémenter ce type d’architecture n’est pas sans inconvénient.

Sur un autre plan, le Domain Driven Design gagne petit à petit du terrain, mais reste assez mal connu. Pourtant, il est un excellent rempart à la Loi de Conway, en offrant toute une panoplie de principes pour améliorer grandement, d’un côté, la communication entre experts techniques et experts du domaine, et de l’autre, l’architecture des systèmes.

Face à ce constat, plusieurs questions :

  • Au delà des bénéfices, à quels challenges faisons-nous face lors de la mise en oeuvre d’une architecture microservices ?
  • Qu’apporte DDD dans notre façon de concevoir des systèmes complexes ?
  • Est ce que DDD peut nous aider dans la volonté de démanteler nos monolithes, et tendre vers plus de réactivité et d’efficacité ?

Ce ce que nous essayerons de voir ensemble lors de cette session.

Vidéo

Pas de vidéo ! ¯\_(ツ)_/¯

Slides

https://rehia.github.io/ddd-microservices/


Du code legacy à un modèle riche

Ce talk a été donné lors d’un meetup du JUG Lyon. Un talk inspiré par les travaux de refactoring effectué sur une application Java chez Saagie, avec Audrey Neveu.

Abstract

La plupart des applications développées le sont en mode CRUD, où toute intention métier est traduite en un enchainement d’opérations sur la base de données, et où le modèle utilisé découle de celui de la base. Pourtant, ces applications cachent très souvent un trésor inestimable : du comportement métier, c’est-à-dire l’ensemble des règles du domaine métier. Et ce trésor passe pourtant au second plan. En faisant un peu d’archéologie, on le retrouve un petit peu partout dans l’UI, dans les services, dans les couches intermédiaires, et même dans la base de données, quand on ne retrouve pas la même règle à plusieurs endroits.

Assurer la cohésion de l’ensemble des comportements du domaine métier est pourtant la clé pour pérenniser les applications. Le Domain Driven Design nous encourage à trouver les bonnes abstractions, et donc les bons modèles en fonction des usages. Mais comment procéder ? Comment refactorer un code finalement très “CRUD”, faire émerger un modèle du domaine riche, et le protéger de toute préoccupation technique ? C’est ce que nous verrons lors de cette session de live coding. Jérôme est Software craftsman, fan d’eXtreme Programming, de DDD et de rugby. Mais aussi artisan Héron, touche à tout chez Saagie, et le seul à préférer piocher la data plutôt dans la mer que dans les lacs.

Vidéo

Slides

Pas de slides ! ¯\_(ツ)_/¯


DDD et Event Sourcing à la rescousse de la GDPR ?

J’ai eu l’occasion de donner ce talk avec Guillaume Lours lors de DevFest Nantes 2017, pour expliquer ce que nous avons fait pour implémenter la GDPR, et comment une approche DDD associée à des patterns connexes nous ont aidé. Il a ensuite été donné plusieurs fois, jusqu’à une dernière représentation lors de Devoxx 2018 (https://www.youtube.com/watch?v=RK4mrpro2B4).

Abstract

La General Data Protection Regulation (GDPR) est le nouveau dispositif légal pour la protection des données en Europe, qui entrera en vigueur le 25 mai 2018. Durant ce retour d’expérience, nous introduirons les grands principes de ce dispositif, tels que le consentement explicite, la portabilité de la donnée, etc. Nous présenterons également les notions d’anonymisation, de pseudonymisation, et de durée de rétention des données, ainsi que d’autres standards nécessaires pour se conformer à la nouvelle réglementation. Une fois le problème présenté, nous vous montrerons comment le Domain Driven Design et les patterns compatibles, tel qu’Event Sourcing nous ont aidés à appréhender les changements les plus importants pour les SI, résultant de l’application de la GDPR.

Vidéo

Slides

Pas de slides ! ¯\_(ツ)_/¯


DDD and Node FTW !!

Cette session assez longue a été donnée lors d’un meetup Codeurs en Seine à Rouen, à l’été 2017, pour montrer un retour d’expérience d’une implémentation de patterns tactiques de DDD en Node.js.

Abstract

Le Domain Driven Design gagne de plus en plus en popularité, bien qu’ayant été décrit il y a maintenant près de 15 ans. Beaucoup de développeurs que je rencontre sont tentés par l’aventure, et aimerait expérimenter cette approche. Mais il n’est pas évident de savoir comment partir, et lorsqu’il s’agit de coder, on se retrouve souvent face à la feuille blanche. Après plus de 3 ans à expérimenter l’approche, et créer des implémentations sous Node.js qui sont aujourd’hui déployées en production, je vous propose un retour d’expérience, et une synthèse de cette expérience. Ainsi, vous pourrez comprendre la corrélation entre les concepts présentés dans les livres qui abordent le sujet, et comment ils prennent vie dans une application Node.js. Du DDD, mais aussi du CQRS, de l’Event Sourcing, une pointe de “clean” architecture, de programmation fonctionnelle, et de quelques librairies assez intéressantes pour nous aider dans notre parcours.

Vidéo

Slides

Pas de slides ! ¯\_(ツ)_/¯


Comment redux a fini sur mon serveur ?

Ce talk, donné conjointement avec Franck Ernewein, est un retour d’expérience de quelques principes et patterns intéressants que nous avons découverts lors de l’implémentation d’une version de Tweetping, et qui met en oeuvre Node.js, React, des patterns DDD, event sourcing et, bien entendu, Redux. Donné lors du NoJUGDay Montpellier, en 2017, et à plusieurs reprises dans quelques meetups.

Abstract

404 - Not Found

Vidéo

Slides

https://www.slideshare.net/FranckErnewein/comment-redux-a-fini-sur-mon-serveur


Le courage de vivre consciemment

Ce talk est assez éloigné de ce que j’ai l’habitude de faire. Je suis sorti de ma zone de confort pour parler de choses un peu plus personnelles, un peu plus profondes. Et pour ces raisons, ce talk n’a pas été simple à écrire. Je suis ravi de l’avoir tout de même fait ! Donné lors des Agile Tour Bordeaux et Montpellier, en 2015.

Abstract

Faire un métier rêvé, dans une ambiance géniale, de l’autonomie, du temps pour apprendre, de l’innovation (donc des essais, et des échecs), le tout à 40 mètres de la mer (allez… 45…), ça vous fait rêver ? Et bien c’est ce que je vis en ce moment :p, et sans exagérer…

Pour autant, en arriver là n’a pas été si simple. Et il a fallu sortir de sa zone confort pour vivre [sa vie pro] consciemment.

Malgré quelques rêves, et quelques bonnes intentions, je n’étais jamais franchement sorti de ma zone de confort. Et c’est à la lumière d’un article de Steve Pavlina, dont cette session porte le nom, et traduit ici en français, que j’ai franchi le pas. Et pour ainsi dire, je ne m’attendais pas une seconde à ce qui m’est arrivé.

J’aimerais ici vous faire partager mon expérience, en toute humilité, et vous donner quelques clés pour, pourquoi pas, vous permettre d’en faire de même !

Vidéo

Pas de vidéo ! ¯\_(ツ)_/¯

Slides

https://fr.slideshare.net/jeromeavoustin/le-courage-de-vivre-consciemment


Refactoring legacy code

J’ai donné ce talk à l’Agile Tour Montpellier, en 2014. C’est une reproduction du kata de refactoring effectué par Sandro Mancuso, dans une vidéo un peu plus longue (https://www.youtube.com/watch?v=_NnElPO5BU0).

Abstract

Comment faire face à un code legacy, et reprendre la main dessus ? Comment rendre ce code testable en quelques secondes ? Comment identifier et corriger les codes smells de notre code ?

Je vous montrerai quelques petites astuces pour se sortir du guêpier que représente ce code legacy, qui pourront enrichir votre boîte à outils d’artisan développeur, dans une séance de live coding.

Cette démonstration est l’oeuvre de Sandro Mancuso, auteur d’un livre sur le Software Craftsmanship.

Vidéo

Slides

https://fr.slideshare.net/jeromeavoustin/refactoring-legacy-code-55790251


Clean Code en pratique

Ce talk a été donné aux Agile Tour Montpellier, Marseille, Toulouse et Bordeaux, en 2012. Une de mes affluences les plus importantes, avec le souvenir d’un énorme troll sur le rugby, chez nos amis toulousains :p.

Abstract

Mettre des post-its au mur, faire des réunions debout, ou estimer avec des cartes, c’est sympa, mais ça ne suffit pas pour être Agile et en tirer tous les bénéfices. L’importance de la qualité est parfois (trop souvent ?) sous-estimée dans des projets qui se disent agiles. Pourtant, le 9e principe du manifeste nous rappelle qu’il faut tendre vers l’excellence technique pour être plus agile : pas d’agilité sans qualité.

Pourquoi est-ce aussi important de maintenir un code propre ? Quels sont les “code smells” qui habituellement pourrissent notre code ? Quels principes et quelles pratiques appliquer pour rendre son code propre ? Venez trouver quelques réponses à ces questions.

Vidéo

Slides

https://fr.slideshare.net/jeromeavoustin/clean-code-en-pratique-14732075


Le pilotage par les tests

J’ai donné ce talk lors de l’Agile Tour Montpellier et Toulouse en 2011. J’y parle de mon expérience d’une approche centrée sur les tests, et notamment TDD.

Abstract

TDD, ATDD, BDD sont des termes qui reviennent régulièrement dans les discussions et autres blogs d’agilistes. Nous essayerons de faire un peu le point sur ces pratiques, et notamment leurs objectifs, à travers un retour d’expérience. Nous verrons également quelques cas pratiques à travers l’utilisation quelques outils du monde .NET, et dont les équivalents existent pour les autres technologies. Bénéfices Faire le tri dans les différentes tendances d’approche par les tests, et voir un cas pratique de mise en oeuvre dans le monde .NET. Ce cas pratique est aussi bien applicable aux mondes Java, Ruby, etc.

Vidéo

Slides

https://fr.slideshare.net/jeromeavoustin/le-pilotage-par-les-tests


L’agile est-il insoutenable ?

Dans ce talk, j’aborde la notion de sprint, et de l’interprétation que l’on peut en faire. Donné lors de l’Agile Tour Paris 2010.

Abstract

L’explication de ce talk est donnée dans l’article de blog du même nom. L’agile est-il insoutenable ?

Vidéo

Pas de vidéo ! ¯\_(ツ)_/¯

Slides

Pas de slides ! ¯\_(ツ)_/¯


Réduisons les gaspillages

Mon tout premier talk ! Donné une première fois lors de l’Agile Tour Vannes en 2010, puis lors de l’Agile Tour Marseille en 2011.

Abstract

404 - Not Found

Vidéo

Pas de vidéo ! ¯\_(ツ)_/¯

Slides

https://fr.slideshare.net/jeromeavoustin/at-marseille-2011-rduisons-les-gaspillages