Sobes.tech

Golang

Care a fost cel mai mare proiect cu bază de date pe care a trebuit să-l implementați sau să-l întrețineți?

Junior — Middle
299

În ce etape ale procesului de interviu în diferite organizații se pune adesea această întrebare?

Intern — Junior
287

Cum se efectuează solicitările către baza de date PostgreSQL?

Junior — Middle
277

Câte solicitări de scriere pe secundă se făceau către date?

262

În ce strat sunt plasate clienții pentru serviciile externe și sistemele?

252

Pe câte instanțe/containere a funcționat serviciul?

249

Care este experiența dvs. în dezvoltarea aplicațiilor care utilizează multithreading și calcule paralele?

Junior — Middle
243

Po host-uri poți să te orientezi? Câți hosts, câte containere rulează?

240

După ce principiu se reduce sau se mărește contorul have?

240

Care a fost cel mai lung proiect la care ai lucrat?

Junior — Middle
236

Cum se realizează conectarea și afișarea datelor în Grafana?

Junior — Middle
232

func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }

224

""" Locurile din cinematograf sunt aranjate într-un rând. Un spectator care tocmai a sosit alege un loc, pentru a sta cât mai departe de ceilalți spectatori din rând. Adică, distanța de la acel loc, până la cel mai apropiat spectator, trebuie să fie maximă. Se garantează că există întotdeauna locuri libere și că cel puțin un spectator este deja așezat. Scrieți o funcție care, dat fiind un rând de locuri (un array de zerouri și unu), va returna distanța (numărul de spații între scaune) de la locul ales până la cel mai apropiat spectator. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

224

Cum se determină vizual sau algoritmic că un element este unic în structura de date Map?

Junior — Middle
224

Cum organizezi arhitectura pentru o solicitare care execută logica de afaceri, face o apelare către un serviciu extern (Google) și salvează rezultatul în baza de date? Descrie pe straturi de sus în jos.

222

/* Trebuie să transferăm date dintr-o sursă către un consumator. Sursa oferă date în loturi mici (~zeci de înregistrări), în timp ce consumatorul funcționează mai eficient cu loturi mari. Un exemplu real este transferul de date din cozi de tip Kafka în baza de date Clickhouse. Sursa: - Practic infinită. - Sursa nu returnează niciodată mai mult de MaxItems în cadrul unei singure apelări Next. - În cadrul unei "sesiuni" (un apel al funcției Pipe), sursa returnează date noi la fiecare Next. - Cu toate acestea, după repornire, sursa va începe de la poziția "confirmată" anterioară, indicată de cookie. Prin urmare, *fiecare* valoare de cookie returnată de Next, după salvarea datelor în receptor, trebuie confirmată cu o apelare la Commit, în aceeași ordine în care au fost returnate de Next. Receptor: - Nu poate procesa mai mult de MaxItems odată. Nivel de bază: Este necesar să implementați funcția func Pipe(p Producer, c Consumer) error care citește date din sursă, le grupează într-un buffer de dimensiune maximă MaxItems și le salvează în receptor, apoi confirmă progresul în sursă. */ const MaxItems = 9999 type Producer interface { // Next returnează: // - un lot de elemente de procesat // - un cookie pentru a fi confirmat după finalizarea procesării // - o eroare Next() (items []any, cookie int, err error) // Commit este folosit pentru a marca lotul de date ca fiind procesat Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

219

Ce indicatori de performanță ați folosit pentru a evalua munca dvs. în ultimul proiect?

Junior — Middle
208

Lucrezi acum sau nu, și în ce format: birou, hibrid, remote?

207

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) n := len(s) for right := 0; right < n; 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 }

203
/11