aux problématiques de l’époque: concurrence, performance, gros systèmes multi- états, Big data... • Plusieurs façons de penser valent mieux qu’une. • Code plus court et concis, facile à comprendre et tester avec moins de bugs et souvent fun. • Effet ouaouh sur les autres 3
objet ou une classe et peut accéder à son état interne et le modifier • Programmation orientée objet • monPanier.ajouter(montant) • Mathématique => f(x) = 2x • Indépendante, n’accède qu’aux paramètres en entrée • Programmation fonctionnelle • (montant1, montant2) -> montant1 + montant2 11 Une méthode n’est pas une fonction (et vice versa).
référentielle = Pour un même input, l’output ne changera pas. • Pas d’effets de bord • Single Responsability Principle • Ex Math.sqrt(value) Fonction IMPURE • Fonctions void, sans input et/ou output • Effets de bord • Plusieurs responsabilités Ex Math.random(); 17
• Transformer une fonction en plusieurs arguments en une fonction à un seul argument qui retourne une fonction sur le reste des argument. • Simplifier, augmenter le niveau d’abstraction, créer des fonctions pures • Application partielle des paramètres 22
Exceptions non prévisibles exemple erreur mémoire => effet de bord • Exceptions prévisibles ex parse Integer • L’erreur doit être retournée et non envoyée. 23
containeur d’une computation qui peut se terminer en exception. Peut se terminer en failure ou success Either => Left pour l’erreur, Right pour le succès 24
avec nous pour poursuivre la conversation ! Banas Expert technique senior [email protected] https://www.linkedin.com/in/sandrine-banas-60498aa8/ @cosjava