Functional Error Handling En Kotlin + Arrow
16:15 - 16:45 Tools-in-action / Langages / intermediate Salle ChanchardonUne des questions que je commence à poser de plus en plus dans mon métier et que je trouve assez négligée est : En cas d’erreur on fait quoi ?
Je vous parle de cela car je remarque que dans une équipe projet, développeurs comme testeurs, ont tendance à éviter les scénarios alternatifs finissant en erreur. Soit par peur de casser le programme soit en pensant que les utilisateurs ne feront jamais ce genre de manip.
La mauvaise nouvelle c’est qu’en production les utilisateurs peuvent faire tout et n'importe quoi, y compris les manips tordues. Si notre programme n’est pas assez robuste pour gérer ce genre de situation, on peut dire que le jour ou cela arrive on sera “chocolat”.
Les erreurs et les pannes font partie de notre quotidien et nos applicatifs doivent être en mesure de les gérer de façon assez explicite et rigoureuse afin d'éviter les imprévus.
Une façon old school de faire les choses en POO, c’est les exceptions. Cette façon atteint rapidement ses limites du fait que :
- Les exceptions sont implicites
- Les exceptions sont couteuses
- Une exception non catchée pétera au runtime et peut arrêter le fonctionnement du programme.
- ….
Mais maintenant on ne fait plus de POO on fait de la FP. Est ce possible de gérer nos erreurs de façon fonctionnelle ?
La réponse est oui.
Dans ce tools in action, je vais vous montrer qu’en Kotlin et à l’aide de la lib Arrow on peut implémenter une alternative fonctionnelle de gestion d'erreurs. Vous allez voir que cela rajoute un peu de complexité à notre code. Je vais en conséquent vous montrer que grâce aux concepts de la FP, en allant plus loin, on peut simplifier cette complexité et implémenter une gestion d’erreur simple, explicite et facile à maintenir.