Mi a probléma a jelenlegi térképfrissítés implementációjával a workerben (tasksRes[t.id][task{...}])?
Golang
// Két egész számokat tartalmazó tömb esetén N hosszúságú, // minden K értékre 1-től N-ig, számolja meg a közös számokat a K hosszúságú prefixekben. // A tömbben lévő számok ismétlődhetnek, az metszet számítása a sokszorosságokat figyelmen kívül hagyva történik. // Az A tömb K hosszúságú prefixe az A tömb első K eleme // A [1, 1] => [1], [1, 1] // B [1, 1] => [1], [1, 1] // R [1, 1] // [1, 2, 5] => [1], [1, 2], [1, 2, 5] // [1, 5, 4] => [1], [1, 5], [1, 5, 4] // [1, 1, 2]
/** :-))) :-(( "ab :-)" = "ab " "ab :-)))" = "ab " "ab :-)))(" = "ab (" "ab ):-)" = "ab )" ":-)" = "" **/ func deleteP(str string) string { }
Hogyan mozgatjuk az ablakot a sliding window algoritmusban?
// Két rendezett nem csökkenő sorrendben lévő egész számokból álló sorozat van. // Vissza kell adni az első sorozat összes olyan elemét, amelyek nem szerepelnek a másodikban. // 0 <= N <= 10^6 // -10^9 <= a[i] <= 10^9 // [1] // [2, 3, 4, 5, 6] // [1] // [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...] // [1] // [2, 3, 4, 5, 6, 7, 8] func filter(first []int, second []int) []int { res := make([]int, 0, len(first)) i, j := 0, 0 for i < len(first) && j < len(second) { if first[i] < second[j] { result = append(result, first[i]) i++ } else if first[i] > second[j] { j++ } else { i++ j++ } } for i < len(first) { result = append(result, first[i]) i++ } return result }
Meséljen a legnehezebb és legérdekesebb feladatról, amit megoldott, különösen az építészeti tapasztalatokról.
Vannak más aktív interjúfolyamataid?
Adott egy függvény, amely két nem csökkenő sorrendbe rendezett egész szám sorozatot fogad. Vissza kell adni az első sorozat összes olyan elemét, amely nem szerepel a másodikban. Hogyan közelítenéd meg a megoldást, és mi a komplexitás?
Meg tudná mondani a jelenlegi jövedelmi szintjét?
Most Moszkvában élsz? Melyik várost fontolgatod? Gondolkozol hibrid munkavégzési formában? Milyen szakaszában vagy a keresésnek?
[név] memóriaértékelésben eltérést jelzett: egyet mondott, mást írt. Hogyan értékeljük helyesen a memóriát?
Hogyan integrálódnak és jelennek meg ezek a metrikák a Grafana-ban?
Skálázható üzenetküldő rendszer tervezése, amely 150 millió felhasználót támogat, 75 millió DAU, 225 millió MAU, 1.2M olvasás / 300k írás QPS, 5 millió egyidejű felhasználó, évente 60 PB új adat, 30%-os éves növekedés, P99 <200 ms olvasásra, <300 ms írásra, SLA 99.95%. KÖRNYEZET Olyan elosztott üzenetküldő rendszer tervezése szükséges, mint a WhatsApp, amely támogatja az 1:1 és csoportos chat-eket, biztosítja az üzenetek kézbesítését, megjeleníti a felhasználók online státuszát és multimédiás fájlokat (képek, videók, hangok) továbbít. A rendszer magas rendelkezésre állást és alacsony késleltetést kell, hogy biztosítson, magas párhuzamosságot kell, hogy kezeljen, és globálisan skálázható legyen. FUNKCIONÁLIS KÖVETELMÉNYEK - Támogatás személyes (1:1) és csoportos chat-ekhez, lehetőséggel résztvevők hozzáadására/eltávolítására - Szöveges üzenetek és multimédiás fájlok küldése és fogadása Nem-funkcionális követelmények: - Nincs kifejezett end-to-end titkosítási mechanizmus a szolgáltatások vagy kliensek szintjén, kivéve egy általános megjegyzést. - Nincs kifejezett leírás a shardingról és a replikációról chat_id vagy user_id alapján az skálázhatóság és a hibatűrés érdekében. - Nincs kifejezett komponens vagy mechanizmus az offline üzenet szinkronizációhoz és kézbesítési igazolásokhoz. - 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őben. **Kritikus pontok, amikre figyelni kell:** (A diagramon Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage és CDN szerepel.)
Van aktív GitHub vagy LinkedIn fiókod?
Milyen volt az utolsó csapat összetétele, amellyel dolgoztál?
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:**
Mennyi volt a maximális kérés száma másodpercenként a legnagyobb terhelésű szolgáltatásban?
Mesélj a legutóbbi projektedről — miről szól és pontosan mivel foglalkozol?
Mesélj röviden az előző munkahelyeiden végzett tevékenységeidről és az általad megvalósított funkciókról.
Van tapasztalata elosztott rendszerekkel?