Golang
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 }
Cos'è il modello OSI? Cos'è il livello di applicazione?
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?
Hai sentito parlare di tracing distribuito?
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?
C'è un parcheggio nel centro commerciale: le auto entrano e escono, e al termine della sessione di parcheggio bisogna prendere il pagamento. Come lo vedi? Progetta un sistema.
Come ottenere l'output 456 se non si utilizza un ricevitore puntatore?
Spiega la tecnica per risolvere il problema della massima distanza dal posto occupato più vicino
1.21 func main() { var nums []*int for i := 0; i < 10; i++ { nums = append(nums, &i) } for _, v := range nums { go func() { fmt.Println(v) }() } }
Cosa sono affinity e anti-affinity in Kubernetes?