Golang
Quali criteri utilizzerai per scegliere un datore di lavoro? Cosa è più importante per te?
Cosa sono gli slice in Go e come sono strutturati?
È possibile utilizzare un indice sulle colonne A, B, C solo per filtrare su A?
Come hai interagito con le fonti di dati? Hai fornito API-chiavi, scritto in Kafka o letto da Kafka?
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é cerca un nuovo lavoro?
Personalmente ho testato che Postgres riordina le colonne e all'ottimizzatore non importa in quale ordine scrivi la query — lui la ristrutturerà come necessario. Cosa ne pensi?
Hai lavorato con transazioni in PostgreSQL e con quali livelli di isolamento?
Quali pratiche esistono per ridurre la dimensione dell'immagine Docker?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // aggiungi una transazione if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil } func (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // aggiungi $1 if err != nil { if err == sql.ErrNoRows { return p, errors.New("partner non trovato") } return p, err } return p, nil }
Cosa vuoi adesso — quali sono le tue aspettative per il nuovo lavoro?
Come è organizzata la comunicazione tra microservizi?
Esiste un percorso di carriera? Vuoi svilupparti tecnicamente o verso la gestione/leadership del team?
Quali strumenti di sincronizzazione elencati hai dovuto usare nel tuo progetto?
Cosa significa la nomenclatura in stile RPC? Nel nostro caso, gRPC e REST — in cosa si differenziano?
[nome] ha chiesto: hai lavorato con livelli di cache — in-memory e distribuiti? conosci i canali e select in Go?
È possibile attivare il profiler in produzione?
Forse puoi suggerire qualcos'altro oltre a Mutex e sync.Map per proteggere la scrittura?
Hai mai dovuto tracciare il tempo, tenere traccia delle attività in qualche sistema?
Come determinare se un prodotto con circa 1000 utenti necessita di un'architettura a microservizi o monolitica?