Hogyan történik a szelet átadása egy függvénynek egy programozási nyelvben?
Golang
func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }
Mesélj a tervezési mintákról. Mi az a double-checked locking (kettős ellenőrzéses zárolás) és mire használják?
Magyarázd el, miért és melyik (a kód kimenetével kapcsolatban)
Lehetséges-e a Nem Ismételhető Olvasás helyzet a Read Committed izolációs szint használata esetén?
Mire fog minden nyomtatásnál kerülni? func fn(a []int) { a[2] = 5 a = append(a, 6) fmt.Println(a) // a = append(a, 7) a[0] = 5 fmt.Println(a) // } func main() { a := make([]int, 0, 5) for i := 0; i < 4; i++ { a = append(a, i) } fn(a[:3]) fmt.Println(a) // }
Mesélj, hogyan működik a Redis, mi az?
A 7. sorban arra következtetnek, hogy a belső tömb túlcsordul, és egy újat hoznak létre. Miért döntöttél így?
Mesélje el, hogyan működik a goroutine ütemező a Go-ban (GMP).
Voltak hibák / problémák a munkahelyen?
Mesélj arról, mi az a map Go-ban, és hogyan érted ezt?
Mi történik a Token Bucket rate limiterrel a következő szcenárióban: 1 kérés a másodperc elején, 99 a végén, majd még 100 a következő másodpercben?
Mesélj az eseményalapú megközelítésről a példádban
// Mi a baj ezzel a kóddal? Hogyan lehetne javítani? func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }
Tervezzen egy rate limitert egy külső API-hoz, 100 kérés/másodperc vagy perc limit mellett
Milyen feladatokat szeretsz? Mit keresel magadnak?
Ki tervezte a projekt architektúráját — te, mint funkcióvezető, a csapattal együtt, vagy csapatvezetőként?
Használod a Golangot?
Mit fog megjelenni minden nyomtatásnál? func fn(a []int) { a[2] = 5 a = append(a, 6) fmt.Println(a) // a = append(a, 7) a[0] = 5 fmt.Println(a) // } func main() { a := make([]int, 0, 5) for i := 0; i < 4; i++ { a = append(a, i) } fn(a[:3]) fmt.Println(a) // }
Hogyan oldak megoldva?