Golang
Pověz mi o návrhu systému moderace/orkestrátora — jak byl navržen, jaká rozhodnutí byla přijata?
Jakou strategii cacheování zvolit — cache-aside nebo write-through — s ohledem na vzor chování uživatelů při kontrole stavu objednávky?
Jaká pravidla práce s kanály je třeba znát při vývoji (uzavřený, otevřený, kdy co lze dělat)?
Napište úlohu v jazyce Go — praktická sekce (problémy z života vývojáře, bez algoritmů): vylepšit nebo opravit službu. Doba trvání — 1,5 hodiny.
Co dělat, pokud se uživatelé stěžují na změnu modelu monetizace, ale firma má jasný plán?
Živý kód: semafor — jak funguje a implementace na základě bufferovaného kanálu.
Jakou metodologii používáte: Scrum, Kanban nebo směs?
Jaké je omezení semaforu a bufferovaného kanálu jako řešení pro omezení paralelních požadavků?
Už jste slyšeli o [společnosti] nebo našich produktech?
Co jsou odhady?
S čím by ses už nechtěl setkat v práci?
Jaká je vaše úroveň: middle, middle+, senior?
Analýza kódu v Go: co kód dělá, jaké jsou problémy?
Do které skupiny (mutabilní/immutabilní) patří rozhraní v Go?
Co jsou to autorizační tokeny a jaké existují?
Jaký je rozdíl mezi relačními databázemi a NoSQL?
Navrhněte škálovatelný systém pro zasílání zpráv, který podporuje 150 milionů uživatelů, 75 milionů DAU, 225 milionů MAU, 1,2 milionu peak QPS čtení / 300k zápisů, 5 milionů současných uživatelů, 60 PB nových dat ročně, růst o 30 % ročně, SLA 99,95 %, p99 <200 ms pro čtení, <300 ms pro zápis. KONTEKST Je třeba navrhnout distribuovaný systém zasílání zpráv, podobný WhatsApp, který podporuje 1:1 a skupinové chaty, zajišťuje doručování zpráv, zobrazuje online statusy uživatelů a umožňuje přenos multimediálních souborů (fotky, videa, audio). Systém musí zajistit vysokou dostupnost a nízkou latenci, podporovat vysoký paralelismus a škálovat na globální úrovni. POŽADAVKY NA FUNKCE - Podpora osobních (1:1) a skupinových chatů s možností přidávat/odstraňovat účastníky - Odesílání a přijímání textových zpráv a multimediálních souborů Není zřejmá jasná implementace end-to-end šifrovacího mechanismu na úrovni služeb nebo klientů, kromě obecné poznámky. - Chybí explicitní popis sharding a replikace databází podle chat_id nebo user_id pro škálovatelnost a odolnost vůči chybám. - Neexistuje jasná komponenta nebo mechanismus pro offline synchronizaci zpráv a potvrzení doručení. - Není jasné, jak je prováděno vyvažování zátěže mezi databázemi a službami, zejména při špičkových zatíženích. **Kritické body k zvážení:**
Uveďte hlavní zásobník v Go
Museli jste někdy zaznamenávat hodiny, sledovat čas v nějakém systému?
""" Místa v kině jsou uspořádána v jednom řádku. Nově příchozí divák si vybírá místo, aby seděl co nejdále od ostatních diváků v řadě. To znamená, že vzdálenost od tohoto místa, kam sedne, k nejbližšímu divákovi, musí být maximální. Je zaručeno, že v řadě jsou vždy volná místa a že již sedí alespoň jeden divák. Napište funkci, která na základě daného řady míst (pole nul a jedniček) vrátí vzdálenost (počet mezer mezi sedadly) od zvoleného místa k nejbližšímu divákovi. [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 { }