Golang
Milyen cache stratégiát válasszunk — cache-aside vagy write-through — figyelembe véve a felhasználók viselkedési mintáját a rendelés állapotának ellenőrzésekor?
Milyen szabályokat kell tudni a csatornákkal való munkáról fejlesztés közben (zárt, nyitott, mikor mit lehet csinálni)?
Írjon feladatot Go nyelven — gyakorlati szakasz (fejlesztő életéből vett problémák, algoritmusok nélkül): javítson vagy javítson egy szolgáltatást. Időtartam — 1,5 óra.
Ha a felhasználók elégedetlenek a monetizációs modell változása miatt, de a vállalkozásnak világos terve van — mit tegyen?
Élő kódolás: szemafor — hogyan működik és megvalósítása pufferelt csatorna alapján.
Milyen módszertant használ: Scrum, Kanban vagy keverék?
Miért változtat munkát?
Hogyan végezte a Kafka üzenetek validálását? Ha egy üzenet nem volt validálva, mi történt vele?
Mi a korlátja a szeminárnak és a pufferelt csatornának, mint megoldások a párhuzamos kérések korlátozására?
Hallott már a [cég] vagy termékeinkről korábban?
Mi az az értékelés?
Mivel nem szeretnél már szembesülni a munkában?
Milyen a szinted — middle, middle+, senior?
Go-kód elemzés: mit csinál a kód, milyen problémák vannak?
Milyen csoporthoz (változtatható/állandó) tartozik az interface a Go-ban?
Mi az az engedélyezési token, és milyen típusai vannak?
Mi a különbség a relációs adatbázisok és a NoSQL között?
Skálázható üzenetküldő rendszer tervezése, amely támogatja a 150 millió felhasználót, 75 millió DAU-t, 225 millió MAU-t, 1,2 millió olvasási / 300k írási csúcs QPS-t, 5 millió egyidejű felhasználót, évente 60 PB új adatot, 30%-os éves növekedést, 99,95%-os SLA-t, p99 <200 ms olvasásra, <300 ms írásra. KÖRNYEZET Olyan elosztott üzenetküldő rendszer tervezése szükséges, mint a WhatsApp, amely támogatja az 1:1 és csoportos beszélgetéseket, garantálja az üzenetek kézbesítését, megjeleníti a felhasználók online státuszát, és lehetővé teszi multimédia fájlok (képek, videók, hangok) átvitelét. A rendszernek magas rendelkezésre állást és alacsony késleltetést kell biztosítania, támogatnia kell a magas párhuzamosságot, és globálisan skálázhatónak kell lennie. FUNKCIÓS KÖVETELMÉNYEK - Személyes (1:1) és csoportos beszélgetések támogatása, résztvevők hozzáadása/eltávolítása lehetőséggel - Szöveges üzenetek és multimédia fájlok küldése és fogadása Nincs világos end-to-end titkosítási mechanizmus megvalósítása szolgáltatási vagy kliens szinten, általános megjegyzésen kívül. - Hiányzik egyértelmű leírás a shardingról és a replikációról chat_id vagy user_id szerint az skálázhatóság és hibatűrés érdekében. - Nincs világos komponens vagy mechanizmus az offline üzenet-szinkronizáció és kézbesítési igazolások kezelésére. - Nem világos, hogyan történik a terheléselosztás az adatbázisok és a szolgáltatások között, különösen csúcsidőszakokban. **Kritikus pontok, amelyeket figyelembe kell venni:**
Sorolja fel a fő verem Go-ban
Előfordult már, hogy órákat kellett felírni, időt követni valamilyen rendszerben?