Sobes.tech

გქონდათ თუ არა გამოცდილება განაწილებული სისტემების მხარდაჭერაში ან განვითარებაში?

185

/* Берилген символдар жолы. i жана j көрсөткүчтөрүнүн жуптарын санын табыңыз (i <= j), алардын ортосунда кайталанган символдор жок. "aba" жолу үчүн жооп 5: ASCII болушу мүмкүн [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") */

185

თქვენ გამოიყენეთ საჯარო ღრუბლები? თუ კი, რომელ მეწოდებლებს და სერვისებს?

185

როგორ მუშაობთ არქიტექტურაზე — გუნდში არქიტექტორი, პლატფორმა, კომიტეტი არსებობს?

184

რამდენად სწრაფად იმუშავებს ყველა backend-ის ხაზოვანი ძიება მაღალი RPS-ის დროს (მაგალითად, 30 000 RPS და 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("ბალანსის რაოდენობა სლაისში 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

როგორ სწრაფად გადაამოწმოთ, რომ ფანჯარაში ყველა სიმბოლოა (ორი რუკის შედარება)?

180

რამდენი მონაცემი გქონდათ ბაზებში მუშაობის დროს?

180

რამდენად აქტიურია ძიებები? იქნებ უკვე არსებობს რამდენიმე შეთავაზება?

180

გთხოვთ, უფრო დეტალურად ისაუბრეთ თქვენს პირველ სამუშაო ადგილზე 2019-დან 2021-მდე.

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) }

178

რამდენი ადამიანი იყო ჩართული თქვენს მუშაობაში ყველაზე დიდ პროექტზე? ნაკლები ათი, ათეულები, ასეულები?

178

როგორ გადავწყვიტოთ პარალელური მოთხოვნების შეზღუდვის პრობლემა განაწილებულ სისტემაში, თუ მომხმარებელმა უნდა ელოდოს შეცდომის მიღების ნაცვლად?

177

არის თუ არა უფრო მარტივი და სწრაფი გზები დატვირთვის ბალანსისთვის, ვიდრე ყველაზე ნაკლებად დატვირთული backend-ის არჩევა?

177

მოძებნეთ სინტაქსის შეცდომები გამოსწორებულ კოდში

177

რატომ მიდიან Message Service შეტყობინებები პირდაპირ gRPC-ით, არა 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

პროტო ფაილზე დაფუძნებული BulkCreateUsers მეთოდის განხორციელება: პროექტის სტრუქტურის, ბიზნეს ლოგიკის, რეპოზიტორიის და SQL-საკითხების შექმნა SOLID პრინციპების დაცვით

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