L'auteur explique pourquoi le pattern Singleton, bien que séduisant par sa simplicité, se transforme souvent en antipattern coûteux. À travers son expérience sur un projet legacy truffé de Singletons, il montre comment ce pattern crée des dépendances cachées, rend les tests impossibles et engendre des problèmes de concurrence. Le Singleton, en agissant comme une variable globale déguisée, viole plusieurs principes SOLID (Dependency Inversion, Single Responsibility, Open/Closed) et complique la maintenance du code. Les tests deviennent difficiles à écrire et à isoler, tandis que la gestion de l’état global partagé introduit des bugs aléatoires et des goulots d’étranglement. L’auteur propose des alternatives comme l’injection de dépendances, la composition root ou les factories, qui rendent le code plus testable, flexible et maintenable. Il conclut que le Singleton doit être évité dans la plupart des cas, sauf pour des ressources vraiment uniques et globales, et insiste sur l’importance de bien évaluer les compromis avant de l’utiliser.
Ce billet explore l'utilisation pratique des Design Patterns en PHP et Symfony, en se concentrant sur des exemples concrets comme Factory, Observer et Facade. Il démystifie ces concepts souvent perçus comme théoriques et montre comment ils structurent et améliorent le code au quotidien. Par exemple, le pattern Factory simplifie la création d'objets complexes, tandis que le pattern Observer permet de découpler les actions déclenchées par des événements. Le billet illustre ces principes avec des extraits de code et des cas d'utilisation dans Symfony, offrant ainsi une compréhension claire et applicable de ces patterns.
L'article explore les principaux modèles de conception de création en JavaScript, offrant des solutions éprouvées pour structurer et rendre le code plus flexible et réutilisable. Il couvre plusieurs modèles, dont le Singleton, qui garantit qu'une classe n'a qu'une seule instance, le Prototype, qui permet de créer de nouveaux objets en copiant des objets existants, et le Factory, qui fournit une interface pour créer des objets tout en permettant aux sous-classes de modifier le type d'objets créés. D'autres modèles comme l'Abstract Factory, qui crée des familles d'objets apparentés, et le Builder, qui construit des objets complexes étape par étape, sont également détaillés. Chaque modèle est illustré avec des exemples pratiques et des cas d'utilisation réels, montrant comment ils peuvent être mis en œuvre efficacement en JavaScript pour améliorer la structure et la maintenabilité du code.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Une présentation critique du pattern / anti-pattern "singleton"