Golang
Kuidas näeb välja teie tööjaotus — mida te edastate kolleegidele pärast koodi kirjutamist?
Mis vahe on json.Unmarshal ja json.Decoder vahel ning millal kasutaksite kumbki neist?
Millised on tagajärjed, kui iga päringu jaoks luua uus HTTP klient?
Millised on reeglid Go-s liideste töötamiseks?
Skaleeritava sõnumside süsteemi projekteerimine, mis toetab 150 miljonit kasutajat, 75 miljonit DAU, 225 miljonit MAU, 1,2 miljonit peak QPS lugemiseks / 300k kirjutamiseks, 5 miljonit samaaegset kasutajat, 60 PB uusi andmeid aastas, 30% aastast kasvu, SLA 99,95%, p99 <200 ms lugemiseks, <300 ms kirjutamiseks. KONTEKST Vajalik on projekteerida jaotatud sõnumside süsteem, sarnane WhatsApp-ile, mis toetab 1:1 ja grupivestlusi, tagab sõnumite kohaletoimetamise, kuvab kasutajate online-olekuid ning võimaldab edastada multimeediafaile (pildid, videod, helid). Süsteem peab tagama kõrge kättesaadavuse ja madala latentsi, toetama kõrget paralleelsust ning skaleeruma globaalselt. FUNKTSIONAALSED NÕUDED - Toetab isiklikke (1:1) ja grupivestlusi koos osalejate lisamise/eemaldamise võimalusega - Tekstisõnumite ja multimeediafailide saatmine ja vastuvõtt End-to-end krüpteerimismehhanismi rakendamine tasemel teenused või kliendid ei ole selgelt nähtav, välja arvatud üldine märkus. - Puudub selge kirjeldus shardingust ja replikatsioonist andmebaasides chat_id või user_id järgi, skaleeritavuse ja tõrkekindluse tagamiseks. - Puudub selge komponent või mehhanism offline sõnumite ja kohaletoimetamise kinnituside sünkroniseerimiseks. - Ei ole selge, kuidas toimub koormuse jaotamine andmebaaside ja teenuste vahel, eriti tipptundidel. **Kriitilised punktid, mida arvestada:**
Töö kohta — kaugtöö, kontoris või hübriid, mida kaalud?
Mis on parem — modulaarne monoliit või mikroteenused šahtimisteenuse jaoks?
Millised kanalitüübid on Go-s? Räägi bufer- ja mittebuferkanalidest.
Mis on süsteemikõne (syscall)?
N elemendi massiivi in-place kiire sorteerimise keskmine ajutõenäoline ja lisamälu keerukus Aja jooksul O(n log n), virna mälu O(log n) Aja jooksul O(n log n), mälu O(1) Aja jooksul O(n^2), virna mälu O(log n) Aja jooksul O(n log n), mälu O(n)
Mida tähendab, et 'mikroteenuste tegevuskulud ei ole õigustatud' — kas mikroteenused on hoolduskulude poolest kallimad?
Räägi CTE — WITH, alamklausimustest, mis üksteise peale asetuvad.
Kui sul on mitu pakkumist, kuidas sa neid valiksid? Mis on sinu jaoks oluline?
Millised on teie palgaootused?
Räägi endast ja oma eelmisest töökogemusest, kõigest, mida pead Go arendaja positsiooni jaoks oluliseks.
Mis on protsess ja niit operatsioonisüsteemis (Linux)?
Räägi mulle resp.Body.Close() kohta — miks see vajalik on ja miks sa panid 10-puhvri?
Kuidas parandada koodi, et tagada kõigi 5 numbri kuvamine?
Kui palju mälu võtab bool-tüüp?
Oletame, et pinnalla on piste ja piirretty suora, joka ei käy sen läpi. Kuinka monta erilaista suoraa voidaan piirtää pisteen läpi, jotka ovat tämän annetun suoran paralllelisiä?