Golang
Kur šobrīd dzīvojat un kādu darba formātu apsverat?
Ko esi uzlabojis sevī pēdējo sešu mēnešu līdz gada laikā? Ko esi iemācījies ārpus darba?
Kā indeksi ietekmē lasīšanu un rakstīšanu — vai tie paātrina vai palēnina?
Pastāsti par sync.Atomic: kam tas ir paredzēts, vai tev nācies to izmantot darbā?
Kā risināt, ja augstas prioritātes filtrs ir pārāk plašs un aizņem visu budžetu?
Ko atgrieza meklēšanas pakalpojums?
Cik daudz hostos darbojās pakalpojums un cik instances tika palaistas?
Kā jūs strādājāt ar WebSocket? Infrastruktūras uzstādīšanas līmenī vai tikai kodā? Kādas tehnoloģijas izmantojāt? Vai bija problēmas ar savienojumu infrastruktūras līmenī?
Kā tika organizēta mīkstā rezervācija (soft hold) ar galīgo pārbaudi rezervācijas apstiprināšanas laikā?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // pievienot darījumu if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // aizsargāt SELECT FOR UPDATE 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 }
Kādā virzienā vēlaties attīstīties — tehniskajā jomā vai vairāk vadībā?
Ko rāda komanda EXPLAIN un kādus datus tā sniedz?
Pastāstiet man vairāk par punktu sistēmu — kas notika augšējā līmenī?
Kāds mehānisms ir Go: mantošana vai sastāvs?
Kā pieslēgt profiler'i Go? Kā ņemt profilus?
Vai ir atšķirība izpildes laikā, ja salīdzinām to pašu funkciju ar sakārtotu un nesakārtotu masīvu? Kas ir branch prediction un procesora pipeline?
Kuri komponenti kļūs šaurais kakls, mērojot no 1000 līdz 10000-20000 RPS?
Ko darījāt ar nederīgajām ziņojumiem pēc manuālas apstrādes? Kā tas tehniski izskatījās?
Vai tu tagad strādā?
var ( mu sync.Mutex items []Product vatRate = 10.0 order Order ) type Product struct { NameOfProduct string PriceOfProduct float32 } type Order struct { Items []Product } func init() { items = make([]Product, 100) } func AddItemToShoppingCart(item Product) { items = append(items, item) } func RemoveItemFromShoppingCart(nameOfItem string) bool { mu.Lock() defer mu.Unlock() for i, item := range items { if item.NameOfProduct == nameOfItem { items = append(items[:i], items[i+1:]...) } } }