Sobes.tech

Golang

Kokiose pokalbių proceso stadijose įvairiose organizacijose dažnai užduodamas šis klausimas?

Intern — Junior
319

Kaip vykdomi užklausos į PostgreSQL duomenų bazę?

Junior — Middle
316

Koks buvo didžiausias duomenų bazės projektas, kurį turėjote įgyvendinti ar prižiūrėti?

Junior — Middle
313

Kiek rašymo užklausų per sekundę gaudavosi į duomenis?

285

Kuriame sluoksnyje yra klientai išorinėms paslaugoms ir sistemoms?

285

Ar galite orientuotis hostuose? Kiek hostų, kiek konteinerių paleidžiama?

270

Kokia jūsų patirtis kuriant programas, naudojančias daugiagijį ir paralelinius skaičiavimus?

Junior — Middle
264

Kiek instancijų/konteinerių veikė paslauga?

260

Kokiu principu turėtų būti mažinamas arba didinamas have skaitiklis?

258

Kaip organizuoti architektūrą užklausai, kuri vykdo verslo logiką, kviečia išorinę paslaugą (Google) ir išsaugo rezultatą duomenų bazėje? Aprašykite sluoksniais nuo viršaus iki apačios.

254

Kaip vyksta duomenų prijungimas ir rodymas Grafanoje?

Junior — Middle
252

Koks buvo ilgiausiai trunkantis projektas, kuri üzerinde dirbti?

Junior — Middle
246

Dabar dirbate ar ne, ir kokiu formatu: biuras, hibridas, nuotolinis?

237

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 }

230

Kaip vizualiai ar algoritmiškai nustatyti, kad elementas yra unikalus Map duomenų struktūroje?

Junior — Middle
229

""" Kino salės vietos išdėstytos vienoje eilėje. Naujas žiūrovas ką tik atvyksta ir pasirenka vietą, kad sėdėtų kuo toliau nuo kitų žiūrovų eilėje. Kitaip tariant, atstumas nuo tos vietos, iki artimiausio žiūrovo, turi būti maksimalus. Garantuojama, kad visada yra laisvų vietų ir jau sėdi bent vienas žiūrovas. Parašykite funkciją, kuri, duodama vietų eilę (masyvą iš nulio ir vieno), grąžins atstumą (erdvės skaičių tarp sėdynių) nuo pasirinktos vietos iki artimiausio žiūrovo. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

227

/* * Duotas sveikųjų skaičių masyvas ir skaičius X, * reikia rasti ilgiausią ne tuščią poskyrį, kurio minimumas yra X. * Grąžinkite tokio poskyria ilgį arba -1, jei tokio nėra. */

226

/* Mums reikia perduoti duomenis iš tam tikro šaltinio tam tikram vartotojui. Šaltinis teikia duomenis mažais paketais (~ dešimtys įrašų), o vartotojas efektyviau dirba su didesniais paketais. Realus pavyzdys - duomenų tiekimas iš Kafka tipo eilių į Clickhouse duomenų bazę. Šaltinis: - Sąlyginai begalinis. - Šaltinis niekada negrąžins daugiau nei MaxItems įrašų vienu Next iškvietimu. - Vienoje "sesijoje" (vieno Pipe funkcijos iškvietimo) šaltinis kiekvieną kartą grąžina naujus duomenis. - Tačiau, po perkrovimo, šaltinis pradės nuo ankstesnės "patvirtintos" pozicijos, nurodytos cookie. Todėl, *kiekviena* cookie reikšmė, kurią grąžino Next, po duomenų išsaugojimo gavėjui, turi būti patvirtinta Commit, ir tai turi būti atlikta griežtai tokia pačia seka, kaip ir grąžinta. Gavėjas: - Negali apdoroti daugiau nei MaxItems vienu metu. Pagrindinis lygis: Reikia įgyvendinti funkciją func Pipe(p Producer, c Consumer) error, kuri skaito duomenis iš šaltinio, juos grupuoja į buferį, kurio dydis ne didesnis kaip MaxItems, ir saugo gavėjui, po to patvirtina pažangą šaltinyje. */ const MaxItems = 9999 type Producer interface { // Next grąžina: // - duomenų paketą // - cookie patvirtinimui // - klaidą Next() (items []any, cookie int, err error) // Commit žymi, kad duomenų paketas apdorotas 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 }

226

Kaip nustatomas laikas, reikalingas elemento pridėjimo operacijai pagal raktą duomenų struktūroje Map?

Junior — Middle
225
/11