Kas ir rinda Go? Kāda ir tās struktūra un īpašības?
Golang
Pastāstiet par jauno map īstenojumu Go (Swiss Tables). Kādas kolīzijas risināšanas metodes pastāv?
// Jāmaina funkcija ap tā, lai iekļautu izvadāmajā sarakstā 6 un saraksts būtu sakārtots // Svarīgi - funkcija ap neko neatgriež package main import ( "fmt" ) func main() { v := []int{3, 4, 1, 2, 5} ap(v) fmt.Println(v) // sagaidāmais rezultāts ir - [3 4 1 2 5 6] } func ap(arr []int) { arr = append(arr, 10) arr[5] = 6 }
Kas ir gorutina? Kāda ir tās vieglums?
Kādus datu bāzu vaicājumu optimizācijas metodes esat izmantojis? Ko skatījāties EXPLAIN ANALYZE un vaicājuma plānā?
Kādi dati tipu Go var pieņemt noklusējuma vērtību nil?
Kā notiek datu pārraide caur nebuferētu kanālu? Vai tam ir buferis?
Vispārīgs jautājums: gatavība intervijai un jautājumu avoti
Kas ir goroutine konteksta pārslēgšana? To veic kas?
No kurienes nāk atmiņa mainīgajiem? Kas ir atmiņas alokators?
Kas bloķē mutex kanālā - gorutina vai atmiņas zona?
Kas ir escape analīze? Kā tā nosaka, kur tiks novietota mainīgā (krātuvē vai stekā)?
Kas notiek, aizverot neiniicēlētu kanālu?
Kāpēc nepieciešams kanāls nebuferētā pārraidē, ja dati iet no steka uz steku? Kādu lomu spēlē kanāls?
Kā samazināt garbage collector izsaukumu biežumu? Kādas optimizācijas metodes jūs zināt?
Kādas uzdevumus veicāt ar Kafka? Kā konfigurējāt piegādes garantijas (exactly-once)?
Pastāstiet par savu darba pieredzi un tehnoloģiju steku
Kā darbojas mutex buferētā kanālā? Ko tas aizsargā?
Kāda veida daudzuzdevumu plānotājs izmanto Go? Kādi ir divi daudzuzdevumu veidi?
Kāda ir Swiss Tables priekšrocība salīdzinājumā ar veco hash tabulas realizāciju? Cik bitu aizņem hash kods vecajā un jaunajā realizācijā?