Sobes.tech

Golang

Fərqli təşkilatlarda müsahibə prosesinin hansı mərhələlərində bu sual tez-tez verilir?

Intern — Junior
319

PostgreSQL verilənlər bazasına sorğular necə həyata keçirilir?

Junior — Middle
316

Hansı ən böyük verilənlər bazası layihəsini həyata keçirməli və ya dəstəkləməli oldunuz?

Junior — Middle
313

Xarici xidmətlər və sistemlər üçün müştərilər hansı qatlamda yerləşir?

285

Məlumatlara saniyədə neçə yazma sorğusu gəlirdi?

283

Hostlar haqqında məlumat verə bilərsinizmi? Neçə host və neçə konteyner işləyir?

270

Xidmət neçə instansiya/konteynerdə işləyirdi?

259

Have sayğacını azaltmaq və ya artırmaq üçün hansı prinsipə əsaslanır?

256

Çox ipli və paralel hesablamaları istifadə edən tətbiqlərin inkişafında təcrübəniz nədir?

Junior — Middle
256

Biznes məntiqini icra edən, xarici xidmətə (Google) zəng edən və nəticəni verilənlər bazasında saxlayan sorğunun memarlığını necə təşkil edərsiniz? Yuxarıdan aşağıya qatlar şəklində təsvir edin.

254

Grafanada məlumatların qoşulması və göstərilməsi necə həyata keçirilir?

Junior — Middle
252

İşləmiş olduğunuz ən uzun müddətli layihə hansıdır?

Junior — Middle
246

İndiyə işləyirsiniz və ya yox, və hansı formatda: ofis, hibrid, uzaqdan?

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

Map məlumatlar strukturu daxilində elementin unikal olduğunu vizual və ya algoritmik şəkildə necə müəyyən etmək olar?

Junior — Middle
229

""" Kinozaldagi joylar bir qator bo'lib joylashgan. Yangi kelgan tomoshabin o'z joyini tanlaydi, qolgan tomoshabinlardan maksimal uzoqlikda o'tirish uchun. Ya'ni, u joydan, eng yaqin tomoshabinga bo'lgan masofa maksimal bo'lishi kerak. Har doim bo'sh joylar borligi va kamida bitta tomoshabin o'tirganligi kafolatlangan. Berilgan joylar qatorida (nol va birlardan iborat) tanlangan joydan eng yaqin tomoshabinga bo'lgan masofani (o'rindiqlar orasidagi bo'sh joylar soni) qaytaradigan funktsiya yozing. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

227

/* * Tam tam ədədlər massiv və X ədədi verilir, * ən uzun boş olmayan alt massiv tapılmalıdır ki, onun minimumu X olsun. * Belə alt massiv uzunluğunu və ya -1 qaytarın, əgər belə alt massiv yoxdursa. */

226

Map verilənlər struktüründə açar ilə element əlavə etmə əməliyyatının icra vaxtı necə müəyyən edilir?

Junior — Middle
225

/* Biz manbadan ma'lumotlarni iste'molchiga uzatishimiz kerak. Manba kichik partiyalar (~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 qaytarmaydi. - 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'tan 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,: // - ishlov beriladigan elementlar paketlari qaytaradi // - 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 }

224
/11