Golang
Papaskink apie moderacijos/orkestratoriaus sistemos projektavimą — kaip ji buvo projektuota, kokius sprendimus priėmėte?
Kokią talpyklos strategiją pasirinkti — cache-aside ar write-through — atsižvelgiant į vartotojų elgesio modelį užsakymo būsenos patikrinimo metu?
Kokios darbo su kanalais taisyklės turi būti žinomos kuriant (uždarytas, atviras, kada ką galima daryti)?
Parašykite užduotį Go kalba — praktinė dalis (programuotojo gyvenimo problemos, be algoritmų): patobulinti arba pataisyti paslaugą. Trukmė — 1,5 valandos.
Ką daryti, jei vartotojai skundžiasi dėl monetizacijos modelio pakeitimo, bet verslas turi aiškų planą?
Gyvas kodavimas: semaforas — kaip veikia ir įgyvendinimas remiantis buferiuotu kanalu.
Kokią metodologiją naudojate: Scrum, Kanban ar mišinį?
Kokia yra semaforo ir buferinio kanalo apribojimas kaip sprendimai, siekiant apriboti paralelinius užklausimus?
Ar jau anksčiau girdėjote apie [įmonę] ar mūsų produktus?
Kas yra įvertinimai?
Su kuo nebenorėtum susidurti darbe?
Koks jūsų lygis: middle, middle+, senior?
Kodo analizė Go kalba: ką daro kodas, kokios problemos yra?
Kokiai grupei (keičiamai/nekeičiamai) priklauso interfeisas Go?
Kas yra autorizacijos tokenai ir kokie jie yra?
Kuo skiriasi reliacinės duomenų bazės nuo NoSQL?
Skaidomaus kurti mastelį siuntimo sistemą, kuri palaiko 150 milijonų vartotojų, 75 milijonų DAU, 225 milijonų MAU, 1,2 milijono peak QPS skaitymo / 300k rašymo, 5 milijonų vienu metu naudotojų, 60 PB naujų duomenų per metus, 30% metinį augimą, SLA 99,95%, p99 <200 ms skaitymui, <300 ms rašymui. KONTEKSTAS Reikia sukurti paskirstytą žinučių sistemą, panašią į WhatsApp, kuri palaiko 1:1 ir grupinius pokalbius, užtikrina žinučių pristatymą, rodo naudotojų būsenas ir leidžia perduoti multimedijos failus (nuotraukas, vaizdo įrašus, garsus). Sistema turi užtikrinti aukštą prieinamumą ir žemą delsą, palaikyti didelį paralelizmą ir būti skalaujama globaliai. FUNKCINIAI REIKALAVIMAI - Palaikymas asmeninių (1:1) ir grupinių pokalbių su galimybe pridėti/pašalinti dalyvius - Tekstinių žinučių ir multimedijos failų siuntimas ir gavimas Aiškus end-to-end šifravimo mechanizmo įgyvendinimas paslaugų ar klientų lygyje nėra matomas, išskyrus bendrą pastabą. - Trūksta aiškaus aprašymo apie sharding ir replikaciją duomenų bazėse pagal chat_id ar user_id, siekiant mastelio ir atsparumo klaidoms. - Nėra aiškios komponento ar mechanizmo offline žinučių sinchronizacijai ir pristatymo patvirtinimams. - Neaišku, kaip vyksta apkrovos paskirstymas tarp duomenų bazių ir paslaugų, ypač piko metu. **Kritinės vietos, kurias reikėtų apsvarstyti:**
Išvardinkite pagrindinį steką Go
Ar kada nors teko įrašyti valandas, stebėti laiką kokioje nors sistemoje?
""" Kinijos vietos yra išdėstytos vienoje eilėje. Naujas žiūrovas pasirenka vietą, kad sėdėtų kuo toliau nuo kitų žiūrovų eilėje. Kitaip tariant, atstumas nuo tos vietos, į kurią jis sės, iki artimiausio žiūrovo turi būti maksimalus. Yra garantuojama, kad visada yra laisvų vietų eilėje ir kad jau sėdi bent vienas žiūrovas. Parašykite funkciją, kuri pagal duotą vietų eilę (masyvą iš nulinių ir vienetinių reikšmių) grąžins atstumą (erdvės skaičių tarp sėdynių) nuo pasirinktos vietos iki artimiausio žiūrovo. [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 { }