Golang
Qual è la differenza tra processi, thread e goroutine in Go?
Cos'è uno stack e un heap nel contesto della gestione della memoria? Chi ha accesso allo stack e all'heap? Perché lo stack funziona più velocemente?
Come scoprire perché la penna risponde lentamente? Come usare pprof?
Viene creato un nuovo thread del sistema operativo per ogni goroutine?
Quali criteri sono importanti per te nella scelta di un'azienda?
Estrai la domanda/compito dell'intervista da questa schermata. Mantieni la lingua originale.
Come funziona il garbage collector in Go? Quando viene avviato? Può essere avviato manualmente?
Potresti raccontarmi più dettagli sulla composizione dell'attuale team, quante persone ci sono e quali sono i loro ruoli — c'erano tester, analisti?
Di solito 2 settimane o qualcosa in più per il passaggio?
Spiega la struttura del limitatore di velocità e la funzione Allow. Quali parametri di configurazione vengono utilizzati e a cosa servono?
Come funziona in generale il team, qual è il processo, come interagisci con i colleghi?
Ha lavorato in precedenza nel settore dell'outsourcing?
Cos'è un canale in Go e quali sono le sue principali aree di applicazione?
Cos'è un panic in Go? In cosa si differenzia un panic da un deadlock?
È possibile usare strutture come chiavi in una mappa?
È possibile creare un indice solo sulla replica, ma non sul master?
Come viene implementato l'isolamento dei container a livello del kernel Linux? Raccontaci di più sui namespace
Qual è la tua esperienza con Linux?
Hai un permesso di lavoro o cittadinanza per lavorare in Italia?
Implementare un limitatore di velocità in memoria, thread-safe, utilizzando l'algoritmo Sliding Window o Token Bucket. Interfaccia: type RateLimiter interface { Allow(key string) bool } Requisiti: - Limitazione: N richieste in T secondi per una chiave - Implementazione thread-safe - Senza librerie esterne - Minimizzare i blocchi - Spiegare: - possibili condizioni di race - impatto sulla GC - comportamento con un gran numero di chiavi Parametri di input: NewRateLimiter(limit int, window time.Duration)