Golang
// Correggere il codice func FixProblem() { var wg sync.WaitGroup ch := make(chan string, 5) mu := sync.Mutex{} for i := 0; i < 5; i++ { wg.Add(1) go func(ch<- string, i int, wg *sync.WaitGroup) { defer wg.Done() mu.Lock() defer mu.Unlock() msg := fmt.Sprintf("Goroutine %s", strconv.Itoa(i)) ch <- msg }(ch, i, &wg) } for { select { case q := <-ch: fmt.Println(q) } } wg.Wait() }
Parlami della tua esperienza e di cosa hai fatto nel tuo precedente lavoro
pacchetto main import "fmt" func main() { a := []int{1,2} a = append(a, 3) b := append(a, 4) c := append(a, 5) fmt.Println(b) fmt.Println(c) }
Cos'è il blocco ottimista?
Come si chiama la costruzione WITH ... AS (...) alla riga 84 della query?
Quanto è comodo il lavoro completamente da remoto?
Quanta memoria viene inizialmente assegnata al buffer?
Cosa sono gli slice in Go e come sono strutturati?
Parlami di te e del tuo attuale posto di lavoro
Hai preso un batch di 500 messaggi da Kafka, ma non puoi salvarli nel database. Cosa succederà? Quanto tempo si può elaborare questi 500 messaggi?
Perché hai usato Redis invece di una cache in memoria?
Cosa sono le interfacce in Go? Cos'è il duck typing?
Quali pratiche esistono per ridurre la dimensione dell'immagine Docker?
Se necessario o per desiderio personale, sei disposto a passare a un altro linguaggio di programmazione?
Parlami più dettagliatamente del sistema di punti — cosa succedeva a livello superiore?
Puoi spiegare la partizione e lo sharding? Qual è la differenza?
Parla dello slice in Go, della sua struttura e delle intestazioni interne.
Perché nei sistemi server si utilizza una coda di task tra la ricezione della richiesta e la sua elaborazione? - Per ridurre il consumo di memoria - Per accelerare l'esecuzione di ogni singolo task - Per smussare i picchi di carico e non sovraccaricare gli handler - Per evitare errori di rete
Puoi ricordare tutti i possibili metodi di interazione tra processi (IPC)?
Come viene valutata l'efficacia del team di sviluppo?