
Design Patterns Go
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
1Quel est le principal avantage du pattern Functional Options en Go ?
Quel est le principal avantage du pattern Functional Options en Go ?
Réponse
Le pattern Functional Options permet de créer des APIs configurables avec des paramètres optionnels sans surcharger les constructeurs. Il évite les constructeurs multiples avec différentes signatures et offre une API extensible et lisible. Ce pattern est idiomatique en Go car il exploite les fonctions de première classe et évite les valeurs par défaut ambiguës.
2Quelle approche est recommandée pour implémenter le pattern Singleton en Go ?
Quelle approche est recommandée pour implémenter le pattern Singleton en Go ?
Réponse
En Go, le pattern Singleton est idéalement implémenté avec sync.Once qui garantit une initialisation thread-safe et paresseuse (lazy initialization). Cette approche évite les mutex manuels et les double-checked locking qui sont sources d'erreurs. sync.Once garantit qu'une fonction est exécutée une seule fois même en présence de multiples goroutines concurrentes.
3Quel principe SOLID encourage l'utilisation des interfaces en Go ?
Quel principe SOLID encourage l'utilisation des interfaces en Go ?
Réponse
Le principe Dependency Inversion (Inversion des dépendances) stipule que les modules de haut niveau ne doivent pas dépendre de modules de bas niveau, mais d'abstractions (interfaces). En Go, cela se traduit par l'acceptation d'interfaces et le retour de types concrets. Ce principe facilite les tests (mocking), le découplage et la maintenabilité du code.
Comment implémenter le pattern Factory en Go de manière idiomatique ?
Quel est le rôle principal du pattern Adapter ?
+21 questions d'entretien
Autres sujets d'entretien Go
Les bases de Go
Structures de données Go
Interfaces Go
Gestion des erreurs
Goroutines basiques
Channels
Go Modules
Serveur HTTP
Client HTTP
Encodage JSON
database/sql
Package context
Testing
Patterns de concurrence
Primitives de synchronisation
Frameworks web Go
Design d'API REST
gRPC
Reflection
Gestion mémoire
Optimisation des performances
Generics
Microservices
Sécurité & Authentication
Docker & Containerization
Kubernetes Basics
Go Avancé
Développement CLI
Maîtrise Go pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement