Golang
Este adevărat că indexul B-tree din PostgreSQL tinde să se extindă în lățime?
Ce format de lucru luați în considerare?
Ce este un Mutex?
Poți să vorbești în general despre Go — ce fel de limbaj este, care sunt caracteristicile sale?
Cum gestionezi situația în care toate cele 5 goroutine văd simultan un cache gol și merg la baza de date (cache stampede)?
Care este cel mai tare proiect sau funcție de care ești mândru?
Cum vor fi alese dacă mai multe canale sunt gata simultan în select?
Vorbește în linii generale despre ce faci în compania ta actuală.
Când ar trebui să preferi RabbitMQ în loc de Kafka și invers?
Cum a fost realizat testul de încărcare și ce metrici au fost urmărite?
Poți să dai un exemplu de un punct de blocaj pe care l-ai găsit prin profilare cu pprof?
Recrutatorul nu înțelege prioritățile, pur și simplu spune 'am nevoie de 300 de candidați' — cum să gestionăm asta?
Ce este o condiție de cursă în Go? Oferiți un exemplu.
Aveți întrebări pentru mine?
De ce ai folosit Redis în loc de un cache în memorie?
Ce sunt interfețele în Go? Ce este duck typing?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // adăugați o tranzacție 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) // adăugați $1 if err != nil { if err == sql.ErrNoRows { return p, errors.New("partener necunoscut") } return p, err } return p, nil }
Povestește cazuri interesante din munca cu PostgreSQL
După ce criterii vei alege acum un nou angajator?
Cum funcționează colectorul de gunoi în Go, cum este structurat?