Ecrit par Nathanael Cherrier

Last week's finds #27

Publié dans ,

Partagez l'article

twitter facebook

On fait une semaine des bonnes pratiques et de la conception ? Bon on voit le découplage dans l'architecture héxagonale, la programmation fonctionnelle avec les functors et les monades.

Dans cette série, je vous propose de faire un peu de veille ensemble. Le principe est simple, je vous parle de ce qui m'a intéressé dans les 7 jours de veille précédents et je vous mets un lien pour que vous puissiez en profiter aussi.

Si je vous dis DDD, découplage, ça vous parle ? Maintenant si je vous dis architecture héxagonale ou Ports & Adapters, est-ce que ça vous parle toujours ? Si non, je pense que vous avez tout à gagner à lire l'article de Maxime Collin sur son application de l'architecture héxagonale sur une stack Symfony. L'article se veut une introduction à cette architecture, vous pourrez donc en tirer profit même si vous ne faites pas de Symfony.

Il y a deux notions propres à la programation functionnelle qu'il est bon de comprendre: les Monads et les Functors. Ce sont des notions liées. En effet une monade et un functor mais l'inverse n'est pas vrai. L'exemple le plus connu des monades en Javascript est l'objet Array. Mais vous pouvez créer les votres. Ne vous inquiétez pas, les monades et les functors sont simples à comprendre. Il ne faut juste pas tomber sur des articles qui rendent les monades sur-compliquées.

Un des changement qui a le plus marqué les développeurs "Apple" lorsqu'ils sont passés de l'Objective-C à Swift fut les Optionals. Et oui ça n'existait pas en Objective-C et il a fallut commencer à mettre des ? et des ! partout dans le code. Pour continuer sur le thème des Monads, je vais vous annoncer quelque chose: les Optionals sont des monades cachées par le langage. On peut le comparer au type Maybe dans les langages purement fonctionnel. Rentrez dans les profondeurs des Optionals!

Si vous avez des questions ou des remarques/conseils, n'hésitez pas à m'envoyer un tweet! Et si vous aimez l'article, n'oubliez pas de le partager avec vos amis. Vous pouvez aussi soutenir le blog sur Patreon.