Golang
Moderatsiya/orkestrator tizimini loyihalash haqida gapirib bering — qanday loyihalandi, qanday qarorlar qabul qilindi?
Buyurtma holatini tekshirishda foydalanuvchilarning xulq-atvor naqshini hisobga olgan holda, qaysi kesh strategiyasini tanlash kerak — cache-aside yoki write-through?
Dasturlash jarayonida kanallar bilan ishlash qoidalarini bilish kerak (yopiq, ochiq, qachon nima qilish mumkin)?
Go tilida vazifa yozing — amaliy bo'lim (dasturchining hayotidan muammolar, algoritmsiz): xizmatni takomillashtirish yoki tuzatish. Davomiyligi — 1,5 soat.
Foydalanuvchilar monetizatsiya modelining o'zgarishiga norozi bo'lsa, lekin biznesda aniq reja bo'lsa, nima qilish kerak?
Jonli kodlash: semafor — qanday ishlaydi va bufferli kanal asosida amalga oshirilishi.
Qaysi metodologiyani qoʻllayapsiz: Scrum, Kanban yoki aralashma?
Paralel so'rovlarni cheklash uchun yechim sifatida semafor va bufferli kanalning cheklovlari nima?
Oldingizmi [kompaniya] yoki bizning mahsulotlarimiz haqida avvalroq?
Estimatsiyalar nima?
Ishda nima bilan yuzlashishni istamaysiz?
Sizning darajangiz nima: middle, middle+, senior?
Go tilida kod tahlili: kod nima qilmoqda, qanday muammolar bor?
Go tilida interfeys qaysi guruhga (o'zgarmas/o'zgarmas emas) tegishli?
Autorizatsiya tokenlari nima va qanday turlari mavjud?
Relatsion bazalar va NoSQL o'rtasidagi farq nima?
150 million foydalanuvchiga mo support qiladigan, 75 million DAU, 225 million MAU, 1.2M o'qish / 300k yozish piki QPS, 5 million bir vaqtning o'zida foydalanayotgan foydalanuvchilar, yillik 60 PB yangi ma'lumotlar, yillik 30% o'sish, SLA 99.95%, p99 <200 ms o'qish uchun, <300 ms yozish uchun, kengaytiriladigan va global miqyosda ishlashga mo'ljallangan skalable xabar yuborish tizimi loyihalashtirish. KONTEKST WhatsApp ga o'xshash, 1:1 va guruh chatlarni qo'llab-quvvatlaydigan, xabarlarni yetkazib berishni ta'minlaydigan, foydalanuvchilarning onlayn holatini ko'rsatadigan va multimedia fayllarini (foto, video, audio) uzatishni ta'minlaydigan tarqatilgan xabar tizimini loyihalashtirish zarur. Tizim yuqori mavjudlik va past kechikishni ta'minlashi, yuqori parallelizmni qo'llab-quvvatlashi va global miqyosda kengayishi kerak. FUNKTSIONAL TALABLAR - Shaxsiy (1:1) va guruh chatlarni qo'llab-quvvatlash, ishtirokchilarni qo'shish/olib tashlash imkoniyati bilan - Matnli xabarlar va multimedia fayllarini yuborish va qabul qilish Xizmatlar yoki mijozlar darajasida end-to-end shifrlash mexanizmining aniq amalga oshirilishi ko'rinmayapti, umumiy yozuvdan tashqari. - chat_id yoki user_id bo'yicha ma'lumotlar bazalarini sharding va replikatsiyasining aniq ta'rifi yo'q, kengaytirilish va nosozlikka chidamlilik uchun. - Offline xabarlar va yetkazib berish qabul qiluvchilarini sinxronlashtirish uchun aniq komponent yoki mexanizm yo'q. - Yuk ortish paytida ma'lumotlar bazalari va xizmatlar o'rtasida yukni taqsimlash qanday amalga oshirilishini aniqlash qiyin. **Muhim nuqtalar:**
Go'da asosiy stekni ro'yxatlang
Hech qachon soatlarni yozish, vaqtni biron bir tizimda kuzatish majburiyati bo'ldimi?
""" Kinoda joylar bitta qator shaklida joylashgan. Yangi kelgan tomoshabin joyni tanlaydi, qator bo'ylab boshqa tomoshabinlardan maksimal masofada o'tirish uchun. Ya'ni, u joydan, qaysi joyga o'tiradi, unga eng yaqin tomoshabinga bo'lgan masofa maksimal bo'lishi kerak. Har doim bo'sh joylar borligini va kamida bitta tomoshabin o'tirganligini kafolatlaydi. Berilgan joylar qatori (nol va birlardan iborat massiv) uchun, tanlangan joydan eng yaqin tomoshabinga bo'lgan masofani (o'rindiqlar orasidagi raqamlar 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 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }