
Go Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
1¿Cuál es la principal ventaja del pattern Functional Options en Go?
¿Cuál es la principal ventaja del pattern Functional Options en Go?
Respuesta
El pattern Functional Options permite crear APIs configurables con parámetros opcionales sin sobrecargar los constructores. Evita tener múltiples constructores con firmas distintas y ofrece una API extensible y legible. Este pattern es idiomático en Go porque aprovecha las funciones de primera clase y evita los valores por defecto ambiguos.
2¿Qué enfoque se recomienda para implementar el pattern Singleton en Go?
¿Qué enfoque se recomienda para implementar el pattern Singleton en Go?
Respuesta
En Go, el pattern Singleton se implementa idealmente con sync.Once, que garantiza una inicialización thread-safe y lazy initialization. Este enfoque evita los mutex manuales y el double-checked locking, que son propensos a errores. sync.Once asegura que una función se ejecute una sola vez incluso con múltiples goroutines concurrentes.
3¿Qué principio SOLID fomenta el uso de interfaces en Go?
¿Qué principio SOLID fomenta el uso de interfaces en Go?
Respuesta
El principio Dependency Inversion establece que los módulos de alto nivel no deben depender de módulos de bajo nivel, sino de abstracciones (interfaces). En Go, esto se traduce en aceptar interfaces y devolver tipos concretos. Este principio facilita las pruebas (mocking), el desacoplamiento y la mantenibilidad del código.
¿Cómo implementar el pattern Factory en Go de manera idiomática?
¿Cuál es el rol principal del pattern Adapter?
+21 preguntas de entrevista
Otros temas de entrevista Go
Fundamentos de Go
Estructuras de datos en Go
Interfaces en Go
Manejo de errores
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificación JSON
Database/SQL
Paquete context
Testing
Patrones de concurrencia
Primitivas de sincronización
Frameworks web de Go
Diseño de API REST
gRPC
Reflection
Gestión de memoria
Optimización del rendimiento
Generics
Microservices
Seguridad y autenticación
Docker & Containerization
Kubernetes Basics
Go Avanzado
Desarrollo de CLI
Domina Go para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis