Golang
Milyen módszereket ismersz a gorutinák közötti váltásra? Hogyan váltasz manuálisan gorutint?
Vannak prioritásaid a témakörök vagy szektorok terén, amelyek egyáltalán nem érdekelnek?
Hogyan működik a context.WithCancel a törléssel?
func fanin[T bármilyen](chs ...<-chan T) chan T { out := make(chan T) wg := sync.WaitGroup{} for _, ch := range chs { wg.Add(1) go func(c <-chan T) { defer wg.Done() for v := range c { out <- v } }(ch) } go func() { wg.Wait() close(out) }() return out } func main() { ch1 := make(chan int, 5) ch2 := make(chan int, 5) for i := 1; i <= 5; i++ { ch1 <- i ch2 <- i * 2 } close(ch1) close(ch2) fmt.Println(fanin(ch1, ch2)) }
Mi a WebSockets?
Hogyan léphetnek kölcsönhatásba a konténerek?
Milyen mikroszolgáltatásokat fejlesztettél?
Emlékszel egy olyan esetre, amikor valami elromlott, és mit tettek?
Jelenleg dolgozol vagy már elhagytad az utolsó munkahelyed?
Mi a goroutine a Go-ban, és miben különbözik a rendszer szálaktól?
Mit szeretnél fejleszteni? Hol érzed most a hiányosságokat?
Mi történik, ha a helyi P sorban semmit sem találnak?
Hogyan működik a LEFT JOIN? Melyik táblából mit veszünk?
Mit használtak a teljesítményértékeléshez és profilozáshoz? Használták a Go-ban az alapértelmezett pprof profilozást?
Mennyi kereskedelmi tapasztalatod van Go-ban?
Hogyan kezelték a hibákat a termelésben? Szolgáltatások Kubernetesben — ha valami nem működött, hogyan oldották meg?
Ismeri a hexagonális architektúrát? Meséljen a szerkezetéről.
Mesélj a legutóbbi projektedről.
Hogyan dönt a Go, hogy a memóriát a veremben vagy a halomban allokálja? Miért fontos ez?
func main() { c := make(chan int, 1000) for i := 0; i < 100; i++ { go foo(c) } sum := 0 for r := range c { sum += r } fmt.Println(sum) } func foo(c chan int) { r := rand.Int() for i := 0; i < r; i++ { c <- r } } --- func main() { c := make(chan int, 1000) var wg sync.WaitGroup wg.Add(100) for i := 0; i < 100; i++ { go func() { defer wg.Done() foo(c) }() } go func() { wg.Wait() close(c) }() sum := 0 for r := range c { sum += r } // // fmt.Println(sum) } func foo(c chan int) { r := rand.Int() for i := 0; i < r; i++ { c <- r } }