Sobes.tech

Төрттүрдүү уюмдарда интервью процесинин кайсы этаптарында бул суроо-талап көбүнесе берилет?

Intern — Junior
329

PostgreSQL маалыматтар базасына суроолор кантип аткарылат?

Junior — Middle
322

Эң чоң маалыматтар базасы долбоору кайсы болду, аны ишке ашырган же колдоо көрсөткөн?

Junior — Middle
319

Маалыматтарга секундка канча жазуу суроо-талаптар келип түшчү?

297

Клиенттер сырткы кызматтар жана системалар үчүн кайсы катмарда жайгаштырылат?

293

Эң узак мөөнөттүү долбоор кайсы болду?

Junior — Middle
286

Хосттор жөнүндө маалымат бере аласызбы? Канча хост жана канча контейнер ишке киргизилет?

274

Көп жип жана параллелдик эсептөөлөрдү колдонгон колдонмолорду иштеп чыгууда кандай тажрыйбаңыз бар?

Junior — Middle
271

Бизнес логиканы ишке ашырып, тышкы кызмат (Google) менен байланышып, натыйжаны маалыматтар базасына сактай турган суроо үчүн архитектураны кантип уюштуруш керек? Жогоркудан төмөнкүгө катмарларга бөлүңүз.

270

Кызмат кайсы канча инстанция/контейнерде иштеди?

266

Grafanaда маалыматтарды туташтыруу жана көрсөтүү кандай жүргүзүлөт?

Junior — Middle
258

Кандай принципке ылайык have эсептегичин азайтуу же көбөйтүү керек?

258

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 }

241

Азыр иштеп жатасызбы же жокпу, жана кайсы форматта: кеңсе, гибрид, алыстан?

239

L4 жана L7 жүктү теңдештирүүчүсүнүн айырмасы эмнеде?

237

Акыркы долбоордо ишиңизди баалоо үчүн кайсы натыйжалуулук көрсөткүчтөрүн колдондуңуз?

Junior — Middle
234

Алгоритмдин убакыт жана эс тутум боюнча татаалдыгы кандай?

233

""" Кинотеатрдагы орундар бир сапта жайгашкан. Жаңы келген көрүүчү орунду тандоодо, сапта калган башка көрүүчүлөрдөн эң алыс отуруу үчүн тандайт. Демек, ошол орундан, алардын эң жакын көрүүчүсүнө болгон аралык максималдуу болушу керек. Ар дайым бош орундар бар жана кеминде бир көрүүчү отургандыгы кепилденет. Берилген орундар сапы (нөлдөр жана бирлер массиви) боюнча, тандалган орундан эң жакын көрүүчүсүнө болгон аралыкты (орундар арасындагы боштуктардын саны) кайтарган функция жазгыла. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

233

/* Бізге деректерді белгілі бір көзден белгілі бір тұтынушыға беру керек. Бұл кезде көз шағын топтамалармен береді (~ он шақты жазбалар), ал тұтынушы үлкен батчтармен тиімді жұмыс істейді. Шынайы мысал - Kafka тәрізді кезектерден деректерді Clickhouse базасына жеткізу. Көз: - Шартты түрде шексіз. - Көз бір шақыруда MaxItems-ден көп жазбаны қайтармайды. - Бір "сессия" (бір Pipe функциясының шақыруы) ішінде көз әр шақыруда жаңа деректер қайтарады. - Алайда, қайта іске қосқаннан кейін көз алдыңғы "расталған" позициядан бастайды, ол cookie арқылы анықталады. Сондықтан, әрбір cookie мәні, Next шақыруы қайтарғаннан кейін, қабылдауда сақталғаннан кейін, Commit арқылы бекітілуі керек, және ол дәл сол тәртіпте орындалуы керек, қайсысы бірінші қайтарылса. Қабылдаушы: - Бір ретте MaxItems-ден көп өңдей алмайды. Негізгі деңгей: func Pipe(p Producer, c Consumer) error функциясын жүзеге асыру керек, ол деректерді көзден оқиды, оларды MaxItems-ден аспайтын буферге топтастырады және қабылдағышқа сақтайды, содан кейін прогресті көзде бекітеді. */ const MaxItems = 9999 type Producer interface { // Next қайтаруы керек: // - өңделетін элементтер тобы // - растайтын cookie // - қате Next() (items []any, cookie int, err error) // Commit - өңделген деректер тобын белгілеу үшін 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 }

232
/11