Le code auquel nous sommes pour la plupart confronté.e.s comporte beaucoup d’informations implicites (erreurs, exceptions, nullables, …). Celles-ci se montrent problématiques car elles nécessitent des connaissances poussées de la codebase et génèrent une charge cognitive supplémentaire. Malheureusement, tout ceci augmente la probabilité que les développeur.euse.s fassent des erreurs.
Au cours de ce talk, exemples à l’appui, nous vous montrerons comment rendre plus explicites ces comportements cachés à l’aide de votre système de types. Nous mettrons ensuite en lumière les problématiques qui en découlent et comment les résoudre.
Au cours de ce talk, nous allons présenter :
- les informations qui peuvent exister de façon implicite dans une codebase
- comment rendre ces comportements plus explicites avec des types (Option<>, Result<>, etc)
- highlight des problématiques de composition générés par ces types
- exemple de composition similaire et mieux maîtrisé par les développeur.euse.s : les listes avec les map, flatmap, etc
- Railway programming : transposition de ces concepts sur le Option<> et le Result<>
- bénéfices et inconvénients : quand l’utiliser et quand ne pas l’utiliser (il nous semble important de souligner que ça n’est pas une silver bullet)
Par défaut, nos langages de prédilection sont C# & F#, nous pouvons tout de même envisager d’autres langages pour nos exemples si les organisateurs pensent que cela serait plus adapté à l'audience.