Refactoring sans les `for`

By Igor Laborie

Elevator Pitch

Peut-on se passer de la bonne vieille boucle for ? Il est toujours intéressant de creuser les alternatives comme les Stream, ou d’autres options. Mais le plus important c’est de savoir quand il fuir cette instruction. Ou pas !

Description

Au quotidien, les boucles sont les briques de base de notre code. Mais on oublie souvent les alternatives comme l’API Stream, la récursivité… C’est toujours bénéfique de prendre du recul sur le code que l’on écrit, pour analyser ce qui peut être amélioré. Les alternatives sont elles plus lisibles ? Plus maintenables ? Plus performantes ?

Ici on se contentera de regarder ce qui se passe en Java, avec quelques incursion coté Kotlin et Scala. Mais le propos s’adapte aux autres langages de programmation.

Notes

Les frameworks naissent et meurent, les bases restent.

C’est une présentation que je mûris depuis longtemps. J’ai eu la chance de beaucoup pratiquer de revue de codes et je constate que souvent on utilise mal les boucles. Cette présentation permettra d’aborder des concepts comme l’évaluation tardive (lazy), le parallélisme, on plus simplement les effets de bords. C’est aussi l’occasion de tester les performances, et de parler de la récursivité terminale. Et pour finir, ce sont des pratiques de « Programmation fonctionnelle », mais surtout de « Software Craft·wo·manship » que je voudrais transmettre.

Parmi mes nombreuses présentations, celle sur la Programmation fonctionnelle en JavaScript : 🦄 ou 💩 ? – Igor Laborie contient déjà des éléments que je souhaite aborder, mais c’est une approche complètement différente que je veux utiliser : on part du code, on refactore, et l’on compare.