Sobes.tech

Golang

/* Verilən simvol sətiri. i və j indeksləri cütlüyünün sayını tapın (i <= j), bunlar arasında təkrarlanan simvollar yoxdur. "aba" sətiri üçün cavab 5: ASCII ola bilər [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") */

187

İctimai buludlardan istifadə etmisinizmi? Əgər bəli, hansı təminatçılar və xidmətlər?

185

Paylanmış sistemlərin dəstəyi və ya inkişafı sahəsində təcrübəniz varmı?

185

Memarlıq üzərində necə işləyirsiniz — komandada memar, platforma, komitə var mı?

184

Yüksək RPS (məsələn, 30.000 RPS və 10 backend) zamanı bütün backend-lərin xətti axtarışının işləmə sürəti nə qədər olacaq?

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 sayısında 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 conțin adresele tuturor instanțelor echilibrate 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

Xidmət neçə hostda işləyirdi və neçə instansiya işə salınmışdı?

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

Axtarışlar nə qədər aktivdir? Bəlkə artıq bəzi təkliflər var?

180

Pəncərədə bütün simvolların olduğunu necə sürətli yoxlamaq olar (iki xəritəni müqayisə etmək)?

180

Verilənlər bazaları ilə işləyərkən ən böyük məlumat həcmi nə idi?

180

2019-dan 2021-ə qədər ilk iş yeriniz haqqında daha ətraflı danışın.

180

Yükü ən az yüklü backend-i seçmək əvəzinə daha sadə və daha sürətli yük balanslaşdırma üsulları varmı?

179

İşləmiş olduğunuz ən böyük layihədə neçə nəfər iştirak edib? Onlardan az, onlarca, yüzlərlə?

178

Çox sayda instansiyaya malik olan paylanmış sistemdə paralel sorğuların məhdudiyyət problemini necə həll etmək olar, istifadəçi səhv almaq yerinə gözləməlidirsə?

177

Düzəldilmiş kodda sintaksis səhvlərini tapın

177

Niyə Message Service mesajları birbaşa gRPC vasitəsilə göndərilir, Kafka vasitəsilə deyil?

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

Proto fayla əsaslanaraq BulkCreateUsers metodunu həyata keçirin: layihə strukturunu, biznes məntiqini, repository və SQL sorğularını SOLID prinsiplərinə uyğun yaradın

175

Xərtəni çıxarmadan sabit yaddaş etmək mümkündürmü?

174
/11