Rétrospective de la conférence Socrates France

Les 25 et 26 septembre dernier, j’ai assisté à la première édition de la déclinaison française de la conférence Socrates (@Socrates_FR). Nous étions 30 Craftsmens passionnés regroupés dans le magnifique château de Rochegude, situé dans le sud de la Drôme, près d’Orange.
2015_10_socrates_fr
Socrates est une « un-conférence » pour les développeurs sur 2 jours qui se différencie des autres conférences « classiques » du fait qu’elle est en mode open-space. Contrairement aux autres conférences où les organisateurs choisissent les speakeurs, le programme n’est pas déterminé à l’avance. Chaque participant apporte son expérience et ses connaissances qu’il peut partager comme bon le lui semble. Socrates rassemble des développeurs passionnés de TDD, Software Craftsmanship, DDD … La conférence est en anglais et reste assez agnostique d’un point de vue technique. Cette année, Java, C# et JavaScript étaient les langages les plus représentés

Durant ces 2 jours, les activités se déroulent en continu pendant la journée. Le matin, après le petit-déjeuner, une première session organise le planning et permet aux participants de proposer une activité sur un ou plusieurs créneaux d’une heure chacun. Le format est totalement libre et peut prendre la forme d’une présentation, d’une session de hands-on code, d’une code-clinic ou tout simplement d’une discussion …

2015_10_planning_matinee
Il y avait pléthore de sessions proposées et il fût parfois frustrant de ne pas pouvoir participer à chacune d’entre elles. Parmi celles auxquelles j’ai participé, voici celles qui ont le plus retenu mon attention.

Tips and tricks for designing composable code (@cyriux)

Un talk très accessible animé par Cyrille Martraire met en perspective les aspects du code qui aident à la composition améliorant ainsi sa qualité.
Certaines constructions permettent de renforcer la composabilité d’un code :

  • les interfaces
  • l’immutabilité
  • la pureté (d’un point de vue fonctionnel)
  • l’utilisation d’un même langage pour l’ensemble du système (car plus d’opportunités)
  • l’associativité …

Au contraire d’autres constructions nuisent à la composition :

  • les exceptions
  • l’Etat (par opposition à l’immutabilité)
  • les effets de bord
  • l’inadéquation entre les Entrées et les Sorties (Input vs Output mismatch)
  • le manque de réutilisabilité
  • l’inadéquation du nombre de records (dans 2 listes par exemple)

Le talk s’est achevé par une évocation du sujet préféré de Cyrille, les monoïdes, comme à l’habitude.

Tests and tools for JavaScript (@JeromeAvoustin)

Étant moi-même Web développeur, j’utilise JavaScript quasiment tous les jours.
Force est de constater que sa part dans mes développement croît au fil des années.
Pourtant peu de projets auxquels j’ai pu participer se sont souciés des problématiques de qualité liées à JavaScript.
Pour quelqu’un qui souhaite mettre en place des tests sur son code JavaScript côté client et désire se remettre au gout du jour niveau Framework de tests JavaScript, je trouve que ce talk était une bonne entrée en matière.

2015_10_tests_and_tools_for_Javascript

Jérôme, qui développe au quotidien sous Node, nous a fait la démonstration du socle technique qu’il utilise pour ses développements.
Nous avons eu droit à une présentation en live de code avec l’IDE WebStorm configuré avec le runner de tests Karma.js et la stack classique npm, require et browserify.
Les tests unitaires étaient écris avec Mocha.js à laquelle était ajoutée Chai.js pour les assertions.

Des sujets plus avancés ont été présentés par la suite, l’écriture de mocks avec Sinon.js et l’utilisation de promise.js pour simplifier le test des callbacks.

Liskov Substitution Principle (@malk_zameth)

Le sujet animé par Romeu autour de SOLID et particulièrement sur le principe de substitution de Liskov était vraiment passionnant à tel point que les participants ont redemandé un talk sur le principe de ségrégation d’Interfaces le lendemain.
Le niveau était assez élevé d’un point de vue théorique et nous sommes revenus sur pas mal de concepts de la Programmation Objet, par exemple sur sa définition ou encore sur les caractéristiques recherchées dans SOLID :

  • Découplage, ne rien connaitre de ses partenaires (loi de Demeter)
  • Encapsulation
  • Cohérence, le système doit être compréhensible dans son ensemble
  • Cohésion, les communications entre objets font sens

Ces caractéristiques constituent le but à atteindre afin d’obtenir un code de qualité. Le principe affirme qu’il doit être possible de remplacer toutes les instances d’un super-type par des instances de ses types dérivés sans pour autant altérer le fonctionnement d’un programme. Le sujet de la discussion poursuivi donc sur les solutions pour faciliter sa mise en œuvre :

  • Recourir aux Value-Object
  • Éviter les exceptions, remplacer les mauvais cas par le pattern Null-Object
  • Se placer du point de vue de l’appelant lorsque l’on crée une interface
  • Limiter le couplage temporel sur les méthodes d’une interface (ex: ICar.Ignite() appelée avant ICar.Drive() )

Et pour finir: le coding Kebab du déjeuner (servi 2 fois) (@malk_zameth)

Dans l’esprit de la conférence, Romeu (encore lui 🙂 ) a improvisé un kata durant le déjeuner. Sa particularité étant qu’il en dure que le temps du repas et que toutes les règles ne sont pas exprimées au début de l’exercice et que celles-ci évoluent au fur et à mesure. Par conséquent il est nécessaire de passer par des phases de refactoring afin de répondre aux nouvelles commandes de Kébabs qui s’enchaînent.

2015_10_dejeuner_coding_kebab

Pendant ce temps, d’autres bonnes discussions ont également eu lieu sur les autres tables. ex: « Qu’est-ce qu’un bon code » « Comment recruter un développeur » ou encore « l’éthique, quand on est développeur » …


C’est avant tout ce type de feedback que je recherche en allant à une conférence, le fait de rencontrer d’autres professionnels confrontés aux mêmes problématiques que les miennes et d’échanger entre nous de la façon de résoudre ces dernières. De plus l’ambiance est vraiment très particulière du fait que les participants s’impliquent tout au long de la journée, durant les repas et même pendant la soirée.
Si vous êtes un développeur passionné, je vous recommande chaudement d’y participer.

L’édition 2016 de Socrates France se déroulera l’an prochain courant septembre dans un cadre sympathique quelque-part en France (dans un autre château à ce qui se dit…) Le nombre de places sera probablement limité autour de 70 participants alors ne tardez pas lorsque les billets seront mis en vente. En espérant vous voir parmi nous.

2015_10_what_you_want_to_discuss

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s