Sobes.tech

Golang

Nima kesh qilindi? Biror kataloglar bormi?

Senior
МВидео/эльдорадо
166

/* Biz ma'lumotlarni manbadan iste'molchiga o'tkazishimiz kerak. Manba kichik partiyalar (taxminan o'n yozuv) bilan ma'lumotlarni taqdim etadi, iste'molch esa katta partiyalar bilan samaraliroq ishlaydi. Haqiqiy misol - Kafka turidagi navbatlardan Clickhouse bazasiga ma'lumot uzatish. Manba: - deyarli cheksiz. - Manba har doim Next chaqiruvida MaxItems dan ko'p yozuvlarni qaytirmaydi. - Bir "sessiya" (bir Pipe funksiyasi chaqiruvi) davomida, manba har Next chaqiruvida yangi ma'lumotlarni qaytaradi. - Biroq, qayta ishga tushirilgandan so'ng, manba avvalgi "tasdiqlangan" pozitsiyadan, cookie bilan belgilangan joydan boshlanadi. Shuning uchun, har bir cookie qiymati, Next qaytarib bergandan so'ng, ma'lumotlar qabul qiluvchiga saqlangandan keyin, Commit chaqiruvi bilan tasdiqlanishi kerak, va ular Next tomonidan qaytarilgan tartibda bo'lishi shart. Qabul qiluvchi: - Bir vaqtning o'zida MaxItems dan ko'p ishlov berolmaydi. Asosiy daraja: Kerak bo'lsa, func Pipe(p Producer, c Consumer) error funksiyasini amalga oshiring, bu funktsiya manbadan ma'lumotlarni o'qiydi, ularni MaxItems o'lchamdagi bufferga guruhlaydi va qabul qiluvchiga saqlaydi, so'ngra manbada progressni tasdiqlaydi. */ const MaxItems = 9999 type Producer interface { // Next quyidagilarni qaytaradi: // - ishlov beriladigan elementlar partiyasi // - tasdiqlash uchun cookie // - xato Next() (items []any, cookie int, err error) // Commit, ma'lumotlar partiyasini ishlov berilgan deb belgilash uchun ishlatiladi 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 }

Middle
Яндекс
166

Ushbu bilan ishlagan kompaniyalar yoki ta'minotchilarni ro'yxatlab berishingiz mumkinmi?

Junior — Middle
166

So'nggi ish joyingiz haqida gapiring: nima bilan shug'ullandingiz, qanday texnologiyalarni ishlatdingiz, qiyin vazifalar nima edi?

Middle
OZONOZON
166

Go tilida slice nima?

Middle
Бюро 1440Бюро 1440
166

gRPC'da ishlatiladigan asosiy chaqirish turlarini ro'yxatga olishingiz mumkinmi?

Junior — Middle
СБЕР дейвайсыСБЕР дейвайсы
166

Yopiq rejim o'rnatilgan kanaldan ma'lumot olish mumkinmi?

Junior — Middle
ГазпромГазпром
X5 groupX5 group
AvitoAvito
+1
166

Kafka'da ma'lum bir partitsiyaga to'g'ridan-to'g'ri yozish mumkinmi, hash uchun kalitni o'tkazib yuborish?

Junior — Middle
Самокат Тех
166

Ma'lumotlar tuzilmasining, masalan, ro'yxat yoki massivning oxiriga element qo'shish mexanizmini tushuntirib bera olasizmi?

Junior — Middle
Lamoda Tech
Startribe
Самокат Тех
+2
166

Dastur bajarilayotganda qanday ma'lumotlar va qanday tarzda stekda joylashtiriladi?

Junior — Middle
166

Loyihalaringizda qaysi kechirish usullarini afzal ko'rasiz va nima uchun?

Junior — Middle
166

Materialized view nima oddiy view dan qanday farqi bor?

Middle
RWB
165

Bog'langan ro'yxat tuzilmasiga qanday komponentlar kiradi?

Junior — Middle
165

Map ma'lumotlar tuzilmasida kalit bo'yicha element qo'shish operatsiyasining bajarilish vaqtini qanday aniqlash mumkin?

Junior — Middle
ЯндексЯндекс
165

Nima uchun odatda iplar uchun boshlang'ich stek o'lchami 2 MB ga o'rnatiladi?

Junior — Middle
165

Loyihalaringizda parallel vazifalarni boshqarish uchun ErrGroup tuzilmasidan foydalandingizmi?

Junior — Middle
165

Amaliyotingizda qanday noodat yoki standart bo'lmagan paketlarni ishlatgansiz?

Junior — Middle
165

Nima uchun bo'lak o'sishi sekinlashmoqda va nima uchun uni doimiy ravishda ikki baravar oshirish mumkin emas?

Middle
RWB
165

GitLab CI/CD ish jarayonida buyruqlar qayerda bajariladi?

Junior — Middle
165

Dasturiy ta'minot loyihalashtirishda SOLID tamoyillariga rioya qilmaslik natijasida qanday oqibatlar yuzaga kelishi mumkin?

Junior — Middle
Zonatelecom
165
/413