Golang
Kui huvitav on see, mida ma ettevõtte kohta kirjeldasin? Kui palju see vastab sellele, mida otsid?
Mis on SOLID? Selgitage põhimõtteid.
Kuidas on korraldatud andmete edastamine erinevate teenuste vahel infrastruktuuris? Kasutades vahendajat, otse, gRPC?
Kuidas on meeskonnas testid üles ehitatud — kes mida kirjutab, milline katvus, kas on E2E?
Kirjutage ülesanne Go keeles — praktiline osa (arendaja elust tulenevad probleemid, ilma algoritmideta): täiustada või parandada teenust. Kestus — 1,5 tundi.
Kas te veel töötad [ettevõttes]? Millal plaanid lahkuda ja miks?
Rääkige meile meeskonna koosseisust, teenuste vastutusaladest ja väljaandmise tsüklist.
Kirjutage kood worker pooliga URL-de järjendi töötlemiseks paralleelsete HTTP-päringutega.
Kuidas saab optimeerida otsingut andmebaasis? Mis on indeksid ja milline on nende keerukus?
Kuidas toimivad aatomilised operatsioonid?
Milliste kriteeriumide järgi jagati tarbijarühmi?
Kuidas tagada sündmuste kohaletoimetamine ebastabiilses võrgus (võrk võib katkeda, sündmusi ei tohi kaotada)?
Kas Go-s prügikorjaja on blokeeriv või mitte? Kas selle mõju on tootmises nähtav?
Ja kõik väljad kasutatakse lugemise ajal?
Mis vahe on Kafka ja RabbitMQ?
Mis on CQRS ja kuidas seda rakendada?
Kuidas hindaksite end Golang arendajana? Kas olete praegu middle, middle+, senior?
Milliseid tööriistu sa kasutasid arhitektuuri skeemide visualiseerimiseks ja millistel juhtudel?
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:**
Kas teil on kogemusi CI/CD-ga? Mida te tegite?