En programmation fonctionnelle, la curryfication consiste à transformer une fonction prenant plusieurs arguments en une séquence de fonctions prenant un seul argument chacune. Bien qu’ étant à l’origine un concept théorique en mathématiques et en informatique, s’avère être un outil puissant dans l’architecture logicielle. Elle permet de décomposer les fonctions complexes en étapes plus simples et modulaires, facilitant ainsi leur compréhension, leur réutilisation et leur extension.
Auteur : mgoeminne
Les implicites en Scala
Les implicites en Scala permettent au compilateur de résoudre des arguments et de réaliser des conversions automatiquement, simplifiant ainsi la vie des développeurs.
Capture de contexte avec le framework Play
Play est un framework de développement Web dit fullstack: il propose la gestion d'un site Web, aussi bien au niveau du backend que de celui du frontend. Dans cet article, je vous propose une technique, inspirée de ce qui est proposé par Pekko HTTP, afin de capturer efficacement le contexte dans lequel le backend répond aux requêtes qu'il reçoit.
Un système simple et efficace de sélecteurs en Scala
Cet article aborde la gestion de comportements variés en programmation, en mettant en avant la notion de "sélecteurs", représentés par des classes en programmation orientée objet. Ces sélecteurs choisissent la méthode d'approche en fonction des contextes d'exécution. Une approche fonctionnelle est proposée pour simplifier cette gestion et éviter les duplications d'efforts, en privilégiant la combinaison et l'évaluation des sélecteurs.
Les combinateurs de parseurs: des regex sous stéroïdes
Cet article aborde le sujet des combinateurs de parseurs. Après avoir déterminé de quoi il retourne, nous donnons un exemple d'application basé sur un DSL permettant de décrire des robots. Après un aparté concernant les types algébriques, les combinateurs de parseurs sont comparés aux décodeurs.
Création d’un parseur pour Bencode en moins de 50 lignes de Scala
Cet article explique comment créer un parseur pour le format Bencode, utilisé dans les fichiers .torrent, avec moins de 50 lignes de code en Scala. Il détaille les concepts clés du format Bencode et comment les implémenter en utilisant des classes, des parseurs et un visiteur pour faciliter l'extraction et l'affichage du contenu de fichiers BitTorrent.
Exceptions: la voie à suivre ou un cul-de-sac?
Cet article discute des défis liés à l'utilisation des exceptions dans la programmation, notamment leur sémantique, leur complexité et leur coût en ressources. Il propose des alternatives, comme les types Option, Either et Try en Scala, qui favorisent une gestion fonctionnelle des erreurs, rendant ainsi le code plus clair et la gestion des erreurs plus explicite.
Découverte de PyOD
PyOD est une bibliothèque en Python qui regroupe de nombreux algorithmes de machine learning pour la détection d'anomalies dans des jeux de données multivariées. Nous découvrons les fonctionnalités qu'elle propose et mettons un évidence un cas d'utilisation de la bibliothèque dans un contexte industriel.
Un connecteur Trino pour les flux RSS
Bien qu'ayant passé de mode ces dernières années, les flux RSS et leurs cousins les flux Atom sont encore largement utilisés auprès des applications Web afin d'exposer simplement et facilement leurs derniers événements consultables. Dans cet article, je présente un plugin pour Trino qui propose un connecteur pour les flux RSS.
JWT: faut-il inclure les permissions dans le jeton?
Lorsqu'on utilise JWT pour gérer des autorisations, deux approches sont souvent considérées: l'intégration des permissions dans les jetons et la limitation de son contenu au seul identifiant de son propriétaire. Quels sont les avantages et inconvénients de ces approches? C'est ce dont nous discutons dans cet article.