Cosa facevi con i messaggi non validi dopo l'elaborazione manuale? Come si presentava tecnicamente?
Golang
Parla del trattamento concorrente — come avete limitato il parallelismo, come avete scelto i parametri tramite misurazioni?
Cosa succede se si eseguono ulteriori operazioni matematiche con un risultato di int32 sovraccarico: ci sarà un errore, un panico o qualcos'altro?
Cosa c'è nel pacchetto sync?
Lavori ancora in Magnit? Perché hai deciso di entrare nel mercato?
Parla di CTE — WITH, sottoquery che si sovrappongono.
Parla di Kubernetes — cosa hai fatto con il cluster?
Qual è la differenza tra SQL e NoSQL?
Hai creato tabelle storiche, ad esempio per l'utente dove viene memorizzato lo storico delle modifiche dei suoi attributi?
Lavori ancora in Magnit? Perché hai deciso di entrare nel mercato?
Come hai ottimizzato le query da 10-20 minuti a 5-7? Quali report venivano eseguiti così lentamente?
Quando non riusciamo a catturare il panico, l'app si chiuderà comunque?
Hai mai dovuto impostare esplicitamente il livello di isolamento nel codice?
Ce erano molti di questi messaggi non validi?
// Domanda 5. Cosa verrà visualizzato sullo schermo func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i } for true { fmt.Println(<-ch) } }
// Domanda 2. Cosa verrà visualizzato sullo schermo package main import "fmt" func main() { { defer fmt.Println(1) } defer fmt.Println(2) }
// Domanda 3. Cosa verrà visualizzato sullo schermo package main import "fmt" import "math" func main() { i := int32(math.Pow(2, 64)) - 1 fmt.Println(i) }
Cosa si è fatto con i messaggi dopo l'elaborazione manuale? Quali erano le opzioni?
Dove bisogna definire recover affinché, in caso di panic, l'applicazione non si blocchi, considerando che ha più endpoint, molte dipendenze (DB, cache, librerie)
Cosa succedeva nel primo canale di sincronizzazione? È un modello di dati su cui si basavano per arricchirsi?