Last week's finds #27

On fait une semaine des bonnes pratiques et de la conception ? Bon on voit le découplage dans l'architecture hexagonale, 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 hexagonale 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 hexagonale 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 programmation fonctionnelle qu'il est bon de comprendre : les Monads et les Functors. Ce sont des notions liées. En effet une monade est 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 changements qui a le plus marqué les développeurs "Apple" lorsqu'ils sont passés de l'Objective-C à Swift fut les Optionals. Oui ça n'existait pas en Objective-C et il a fallu 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!