Golang
Come si può fermare l'esecuzione di una goroutine?
Come funziona il profiling?
Cosa ti motiva ora a cercare un nuovo lavoro?
Domanda 1: Cosa mostrerà il codice con gli slice? (append, capacità, array sottostante condiviso)
Parli delle strategie di sharding dei database: quando iniziare lo sharding e quali criteri usare per scegliere la chiave di sharding?
Hai esperienza con Docker? Hai esperienza nella scrittura di Dockerfile da solo?
Cos'è SOLID? Elenca i principi.
Parla del team e dei processi di gestione (sprint, kanban, ecc.)
Qual è la tua esperienza complessiva in IT in ambito commerciale?
Cos'è un'interfaccia nil? Cosa c'è sotto il cofano?
Quanto tempo è necessario per il recupero?
Come effettuate il deployment: Kubernetes, bare metal o cloud?
// Problema 3 // Descrivi quale compito risolve questo codice // Quali problemi ci sono in questa soluzione? // Come riscriveresti questo codice? var c int var mu sync.RWMutex type Trace struct { // Alcuni campi qui } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
Cosa succede se si passa uno slice come argomento di una funzione e lo si modifica all'interno?
Se aggiungiamo molti consumer, ma il ritardo di Kafka non diminuisce, cosa indica?
Quali strumenti utilizzi per la valutazione delle prestazioni e il profiling durante lo sviluppo di un'applicazione in Go?
Come gestire la situazione in cui tutte e 5 le goroutine vedono contemporaneamente una cache vuota e vanno al database (cache stampede)?
Perché è conveniente che la quantità di shard sia una potenza di due, e non, ad esempio, tre?
Quali vantaggi tecnologici ed ecosistemi di Go, possibilmente unici, che solo Go soddisfa, potresti nominare?
Parlami del tuo attuale lavoro in Wildberries — che tipo di piattaforma è, quale team, cosa hai fatto?