Sobes.tech

Golang

Kaip dirbate su architektūra — ar komandoje yra architektas, platforma, komitetas?

184

Ar turite patirties palaikant ar kuriant paskirstytas sistemas?

183

Ar naudojote viešąsias debesų paslaugas? Jei taip, kokius tiekėjus ir paslaugas?

183

Kiek greitai veiks linijinis visų backend'ų paieška esant aukštam RPS (pavyzdžiui, 30 000 RPS ir 10 backendų)?

183

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Backends skaičius slice 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs apima visų balansuotų instancijų adresus func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

181

Kiek hostuose veikė paslauga ir kiek instancijų buvo paleista?

180

Koks didžiausias duomenų kiekis, su kuriuo dirbote duomenų bazėse?

180

Papasakok daugiau apie savo pirmąją darbo vietą nuo 2019 iki 2021 metų.

180

Kaip greitai patikrinti, ar lange yra visi simboliai (dviejų žemėlapių palyginimas)?

180

Kiek aktyvios paieškos? Galbūt jau yra keletas pasiūlymų?

180

Kokia buvo didžiausia užklausų skaičius per sekundę labiausiai apkrautoje paslaugoje?

180

Kiek žmonių dalyvavo didžiausiame projekte, kuriame dirbote? Mažiau nei dešimt, dešimtки, šimtai?

178

/** :-))) :-(( "ab :-)" = "ab " "ab :-)))" = "ab " "ab :-)))(" = "ab (" "ab ):-)" = "ab )" ":-)" = "" **/ func deleteP(str string) string { n := len(str) res := make([]byte, 0, n) i := 0 for i < n { if str[i] == ':' && str[i+1] == '-' && (str[i+2] == ')' || str[i+2] == '(') { ch := str[i+2] i += 2 for i < n && str[i] == ch { i++ } } else { res = append(res, str[i]) } } return string(res) }

178

Kaip išspręsti paralelinių užklausų apribojimo problemą paskirstytoje sistemoje su keliomis instancijomis, jei vartotojas turi laukti, o ne gauti klaidą?

177

Ar yra paprastesnių ir greitesnių būdų paskirstyti apkrovą, nei pasirinkti mažiausiai apkrautą backend'ą?

177

Raskite sintaksės klaidas pataisytame kode

177

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) for right := 0; right < len(s); right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }

176

Kodėl Message Service žinutės eina tiesiogiai per gRPC, o ne per Kafka?

176

Įgyvendinkite metodą BulkCreateUsers remiantis proto failu: sukurkite projekto struktūrą, verslo logiką, saugyklą ir SQL užklausas laikantis SOLID principų

175

""" Kino salės vietos išdėstytos vienoje eilėje. Naujas žiūrovas pasirenka vietą, kad sėdėtų kuo toliau nuo kitų žiūrovų eilėje. Kitaip tariant, atstumas nuo tos vietos, į kurią jis sės, iki artimiausio žiūrovo turi būti maksimalus. Yra garantija, kad eilėje visada yra laisvų vietų ir jau sėdi bent vienas žiūrovas. Parašykite funkciją, kuri pagal duotą vietų eilę (masyvą iš nulinių ir vienetinių reikšmių) grąžins atstumą (nuostatų tarp sėdynių skaičių) nuo pasirinktos vietos iki artimiausio žiūrovo. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] -> 3 [1, 0, 0, 0] -> 3 place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }

174
/11