L’article "Simplify Your Code: Functional Core, Imperative Shell" (adapté d’un épisode Google Tech on the Toilet) propose une méthode pour structurer son code en séparant la logique métier pure (le cœur fonctionnel) des effets de bord (la coquille impérative). L’idée est d’isoler la logique métier dans des fonctions pures, faciles à tester et à réutiliser, tandis que les interactions externes (base de données, envoi d’emails, etc.) sont reléguées à une couche impérative. Par exemple, au lieu de mélanger requêtes base de données et envoi d’emails dans une seule fonction, on extrait d’abord les utilisateurs expirés via une fonction pure (getExpiredUsers), puis on génère les emails avec une autre fonction pure (generateExpiryEmails), avant de les envoyer via une couche impérative. Cette approche améliore la testabilité, la maintenabilité et la flexibilité du code.
Tout est dans le titre
Tout est dans le titre
Un excellent exemple de mise en pratique du concept de "separation of concerns" en utilisant les évènements... exemple en PHP
Un article très intéressant sur la refactorisation du code... et l'importance de la "séparation des préoccupations"