Golang
Paralel HTTP so'rovlar bilan URL-lar bo'yicha bo'lakni ishlash uchun worker pool bilan kod yozing.
QUIC protokoli nima? Uni nima uchun yaratildi?
Qaysi parallel dasturlash naqshilarini bilasiz? Go ning standart kutubxonasi/praktikasidan semafor misolini keltiring va kanal qanday semafor sifatida ishlatilishini (tutish va ozod qilish) tushuntiring.
Jamoa tarkibi va rivojlantirish jarayonlari haqida gapiring (sprintlar, vazifa taqsimoti, kodni ko'rib chiqish).
Ma'lumotlar bazasida qidirishni qanday optimallashtirish mumkin? Indekslar nima va ularning murakkabligi qanday?
Qaytarilishlar va to'lovlarni qanday boshqargansiz?
Go rejalashtiruvchisi nechta ipni ishga tushiradi? Va ayniqsa AMD EPYC bilan 64 yadro va 128 ip bilan?
Ikki ssenariyning afzalliklari va kamchiliklari nima: to'plamni ishga tushirishdan oldin vazifalarni qo'shish va ishga tushirgandan keyin?
Oqim va jarayon o'rtasidagi farq haqida tasavvurga egasizmi?
Keshni bekor qilish turlari. Qaysilarini bilasiz va qaysilaridan foydalangansiz?
Indeks nima va PostgreSQLda qanday indeks turlari mavjud?
SELECT u.id, u.name, o.id as order_id, o.amount FROM users u ? JOIN orders o ON u.id = o.user_id;
Go tilida xarita qanday kalitlarga ega bo'lishi mumkin?
ClickHouse ga 10 milliard satrni tezda qanday qo'shish mumkin?
HAVING nima uchun kerak?
json.Unmarshal va json.Decoder o'rtasidagi farq nima va qachon har birini ishlatasiz?
Umumiy savol: suhbatga tayyorgarlik va savollar manbalari
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:**
Agar Kafka'dan voz kechish va uni boshqa xabarlar brokeriga almashtirish kerak bo'lsa, nima bo'ladi? Kafka'ni tashqi xizmatlardan qanday izolyatsiya qilish mumkin?
Nima uchun Process metodida xatoliklar qaytmayapti? Uni tuzatish va to'liq ishlaydigan kodni yuborish kerak.