Sobes.tech

Golang

/* Dotā rakstzīmju virkne. Atrodiet indeksu i un j pāru skaitu (i <= j), starp kuriem nav atkārtotu rakstzīmju. Vērtība "aba" ir 5: var būt ASCII [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") */

187

Vai esat izmantojis publiskās mākoņpakalpojumus? Ja jā, ar kuriem pakalpojumu sniedzējiem un pakalpojumiem?

185

Vai jums ir pieredze izplatītu sistēmu atbalstē vai izstrādē?

185

Kā jūs strādājat pie arhitektūras — vai komandā ir arhitekts, platforma, komiteja?

184

Cik ātri darbosies lineārā meklēšana visiem backendiem ar augstu RPS (piemēram, 30 000 RPS un 10 backendiem)?

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 skaits 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 satur visus balansētos instanču adreses 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

Cik daudz hostos darbojās pakalpojums un cik instances tika palaistas?

180

/** :-))) :-(( "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) }

180

Cik aktīvas ir meklēšana? Varbūt jau ir kādas piedāvājumi?

180

Kā ātri pārbaudīt, vai logā ir visi simboli (divu kartes salīdzinājums)?

180

Kāds bija lielākais datu apjoms, ar kuru strādājāt datu bāzēs?

180

Pastāsti vairāk par savu pirmo darba vietu no 2019. līdz 2021. gadam.

180

Vai ir vienkāršākas un ātrāks veids, kā līdzsvarot slodzi, nevis izvēlēties mazāk noslogoto backend?

179

Cik cilvēku bija iesaistīti lielākajā projektā, kurā esi strādājis? Mazāk nekā desmit, desmiti, simti?

178

Kā risināt paralēlo pieprasījumu ierobežošanas problēmu izplatītā sistēmā ar vairākām instancēm, ja lietotājam jāgaida, nevis jāsaņem kļūda?

177

Atrodiet sintakses kļūdas labotajā kodā

177

Kāpēc Message Service ziņas iet tieši caur gRPC, nevis caur Kafka?

176

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

Īstenojiet metodi BulkCreateUsers, balstoties uz proto failu: izveidojiet projekta struktūru, biznesa loģiku, krātuvi un SQL vaicājumus, ievērojot SOLID principus

175

Vai ir iespējams izveidot pastāvīgu atmiņu, neizņemot karti?

174
/11