Vai tas nozīmē, ka viss tomēr beigsies pēc šī laika? Citiem vārdiem sakot, kaut kas vēl var nedarboties — kāda ir šeit problēma?
Golang
Iedomājieties, ka mums ir liela slodze, miljoniem klientu, un jūsu pieprasījums sāk ļoti ilgi darboties. Ko darītu? Kā sapratīsiet, ka tas darbojas pastāvīgā laikā?
Vai vari pastāstīt, kā izvēlējāties saīsinātās saites veidošanas algoritmu?
Kā laika ierobežojumi ietekmē analītikas slodzes samazināšanu?
Kā to izdarīt Go līmenī — idejiski, lai nosūtītu atbildi lietotājam un vienlaikus nosūtītu datus analītikai?
Pastāsti par projektu Avito — amats (mid/senior), kādus uzdevumus risināji?
Kāpēc galvenokārt tiek izmantoti triggeri Legacy sistēmām?
Ko var teikt par lasīšanas ātrumu, ja ir indekss?
Kas ir tās atsauces, kuras jūs izmantojāt?
Ko programma izvadīs? Kāpēc? ```go func main() { timeStart := time.Now() _, _ = <-worker(), <-worker() println(int(time.Since(timeStart).Seconds())) } func worker() chan int { ch := make(chan int) go func() { time.Sleep(3 * time.Second) ch <- 1 }() return ch } ```
Kādi ir jūsu algu gaidījumi? Kā tika veidots jūsu iepriekšējais ienākums (pamatalga, prēmijas)? Vai esat gatavs apsvērt kopējo ienākumu, ieskaitot prēmijas?
Vai šajā tabulā ir kādi indeksi?
Kāda veida būs šis skaitītājs?
Tu arī teici, ka izmantosim inner join. Kāpēc? Vai varēja uzrakstīt arī left join? Kā atšķiras left join no right join?
Tātad, tava atmiņas risinājums izmanto mutex. Vari paskaidrot, kas tas ir un kuru tu izmantoji?
Vai laika limits ir vienāds visiem? Kā tiks aprēķināts šis laika limits?
Kā tieši tiek panākts kolīziju neesamība dažādās risinājumos — atmiņā un datu bāzē?
Kādi ir kritēriji, pēc kuriem izvēlaties jaunu darba vietu?
Ko šis kods izvadīs un kāpēc? ```go package main import "fmt" func main() { lst := []string{"a", "b", "c", "d"} for k, v := range lst { if k == 0 { lst = []string{"aa", "bb", "cc", "dd"} } fmt.Println(v) } } ```
Ko tu domā, kāda ir kopumā problēma ar atmiņas risinājumu? Kas notiks, ja pārstartēsi pakalpojumu?