Sobes.tech

Golang

Kako radite na arhitekturi — postoji li arhitekta u timu, platforma, komisija?

184

Имате ли искуства у подршци или развоју расподељених система?

183

Da li ste koristili javne облаке? Ако јесте, којим провајдерима и сервисима?

183

Koliko će brzo raditi linearno pretraživanje svih backendova pri visokim RPS (npr. 30.000 RPS i 10 backendova)?

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 во слайс 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 содржат адресите на сите балансирани инстанции 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

На колико хостова је радила услуга и колико инстанци је покренуто?

180

Koji je bio najveći obim podataka s kojima ste radili u bazama podataka?

180

Реци ми више о првом месту рада од 2019. до 2021. године.

180

Kako brzo proveriti da li u prozoru postoje svi simboli (upoređenje dve mape)?

180

Koliko su aktivne pretrage? Možda već postoje neke ponude?

180

Koje je bilo maksimalno broj zahteva u sekundi na najopterećenijoj usluzi?

180

Колико људи је учествовало у највећем пројекту на којем си радио? Мање од десет, десетине, стотине?

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

Kako rešiti problem ograničenja paralelnih zahteva u distribuiranom sistemu sa više instanci, ako korisnik treba da čeka umesto da dobije grešku?

177

Postoje li jednostavniji i brži načini za balansiranje opterećenja umesto odabira backend-a sa najmanjim opterećenjem?

177

Nađite sintaksne greške u ispravljenom kodu

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

Zašto poruke iz Message Service idu direktno putem gRPC, a ne putem Kafka?

176

Implementirajte metodu BulkCreateUsers na osnovu proto fajla: kreirajte strukturu projekta, poslovnu logiku, repozitorijum i SQL upite u skladu sa SOLID principima

175

""" Места у биоскопу су распоређена у једном реду. Нови гледалац бира место, да седи што даље од осталих гледалаца у реду. Другим речима, растојање од тог места, на које ће седети, до најближе гледаоца треба да буде максимално. Гарантовано је да увек постоје слободна места у реду и да већ седи бар један гледалац. Напишите функцију која, на основу датог реда места (массив нула и јединица), враћа растојање (број размака између седишта) од изабрано место до најближе гледаоца. [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