
Go Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
1Qual è il principale vantaggio del pattern Functional Options in Go?
Qual è il principale vantaggio del pattern Functional Options in Go?
Risposta
Il pattern Functional Options consente di creare API configurabili con parametri opzionali senza sovraccaricare i costruttori. Evita più costruttori con firme diverse e offre un'API estensibile e leggibile. Questo pattern è idiomatico in Go perché sfrutta le funzioni di prima classe ed evita valori predefiniti ambigui.
2Quale approccio è consigliato per implementare il pattern Singleton in Go?
Quale approccio è consigliato per implementare il pattern Singleton in Go?
Risposta
In Go, il pattern Singleton è implementato idealmente con sync.Once, che garantisce un'inizializzazione thread-safe e lazy initialization. Questo approccio evita i mutex manuali e il double-checked locking, che sono soggetti a errori. sync.Once assicura che una funzione venga eseguita una sola volta anche in presenza di più goroutine concorrenti.
3Quale principio SOLID incoraggia l'uso delle interface in Go?
Quale principio SOLID incoraggia l'uso delle interface in Go?
Risposta
Il principio Dependency Inversion afferma che i moduli di alto livello non dovrebbero dipendere dai moduli di basso livello, ma da astrazioni (interface). In Go, questo si traduce nell'accettare interface e restituire tipi concreti. Questo principio facilita il testing (mocking), il disaccoppiamento e la manutenibilità del codice.
Come implementare il pattern Factory in Go in modo idiomatico?
Qual è il ruolo principale del pattern Adapter?
+21 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis