Golang
Pastāsti par moderācijas/orķestratora sistēmas projektēšanu — kā tā tika projektēta, kādus lēmumus pieņēmāt?
Kuru kešēšanas stratēģiju izvēlēties — cache-aside vai write-through — ņemot vērā lietotāju uzvedības modeli, pārbaudot pasūtījuma statusu?
Kādi darba ar kanāliem noteikumi jāzina izstrādes laikā (slēgts, atvērts, kad ko var darīt)?
Rakstiet uzdevumu Go valodā — praktiskā sadaļa (izstrādātāja dzīves problēmas, bez algoritmiem): uzlabot vai labot pakalpojumu. Ilgums — 1,5 stundas.
Ko darīt, ja lietotāji sūdzas par monetizācijas modeļa maiņu, bet uzņēmumam ir skaidrs plāns?
Tiešraides kodēšana: semafors — kā tas darbojas un tā īstenošana, balstoties uz buferētu kanālu.
Kādu metodoloģiju jūs izmantojat: Scrum, Kanban vai maisījumu?
Kāda ir semafora un buferizētā kanāla ierobežojumi kā risinājumi paralēlo pieprasījumu ierobežošanai?
Vai jūs jau esat dzirdējuši par [uzņēmumu] vai mūsu produktiem?
Kas ir novērtējumi?
Ar ko vairs nevēlies saskarties darbā?
Kāds ir jūsu līmenis: middle, middle+, senior?
Koda analīze Go valodā: ko dara kods, kādas problēmas ir?
Kurai grupai (maināma/nemaināma) pieder interfeiss Go?
Kas ir autorizācijas tokeni un kādi tie ir?
Kāda ir atšķirība starp relāciju datu bāzēm un NoSQL?
Plānojot mēru skalojamu ziņojumapmaiņas sistēmu, kas atbalsta 150 miljonus lietotāju, ar 75 miljoniem DAU, 225 miljoniem MAU, 1,2 miljoniem peak QPS lasīšanai / 300k rakstīšanai, 5 miljoniem vienlaicīgu lietotāju, ar 60 PB jauniem datiem gadā, 30% gada pieaugumu, SLA 99,95%, p99 <200 ms lasīšanai, <300 ms rakstīšanai. KONTEKSTS Nepieciešams izstrādāt izplatītu ziņojumapmaiņas sistēmu, līdzīgu WhatsApp, kas atbalsta 1:1 un grupu tērzēšanu, nodrošina ziņojumu piegādi, parāda lietotāju tiešsaistes statusus un ļauj pārsūtīt multimediju failus (attēlus, video, audio). Sistēma jānodrošina ar augstu pieejamību un zemu latentumu, jāatbalsta augsts paralēlisms un jāskala globāli. FUNKCIONĀLIE PRASĪBAS - Atbalsts personīgajiem (1:1) un grupu tērzēšanas ar iespēju pievienot/noņemt dalībniekus - Teksta ziņojumu un multimediju failu sūtīšana un saņemšana Nav skaidri redzama end-to-end šifrēšanas mehānisma īstenošana pakalpojumu vai klientu līmenī, izņemot vispārēju piezīmi. - Trūkst skaidra apraksta par sharding un replikāciju datu bāzēs pēc chat_id vai user_id, lai nodrošinātu mērogojamību un kļūdu tolerance. - Nav skaidrs komponentu vai mehānisma offline ziņojumu sinhronizācijai un piegādes apstiprinājumiem. - Nav skaidrs, kā tiek veikta slodzes līdzsvarošana starp datu bāzēm un pakalpojumiem, īpaši virsotnes slodzēs. **Kritiskie punkti, kas jāņem vērā:**
Sarakstiet galveno steku Go
Vai jums kādreiz bija jāreģistrē stundas, jāseko laikam kādā sistēmā?
""" Kinoteātra vietas ir izvietotas vienā rindā. Jauns skatītājs izvēlas vietu, lai sēdētu pēc iespējas tālāk no citiem skatītājiem rindā. Tas ir, attālums no šīs vietas, kur viņš sēdēs, līdz tuvākajam skatītājam, ir jābūt maksimālam. Ir garantēts, ka rindā vienmēr ir brīvas vietas un ka jau ir vismaz viens skatītājs. Uzrakstiet funkciju, kas, pamatojoties uz dotu vietu rindu (nulles un vienības masīvs), atgriezīs attālumu (starp sēdvietām skaitu) no izvēlētās vietas līdz tuvākajam skatītājam. [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 { }