Kas kasutasite Inbox ja Outbox mustreid?
Golang
Ülesanne: «Timeout-iga ping-pong» Kirjutage funktsioon pingPong, mis: - Käivitab kaks gorutini: üks genereerib sõnumeid "ping", teine — "pong". - Gorutini vahetavad sõnumeid rangelt järjest läbi ühise kanali. - Vahetus kestab 3 sekundit, pärast mida programm peaks lõpetama (sügav väljalülitus). - Kasutage konteksti ajapiirangu ja tühistamise jaoks. - Kuvage iga sõnum ekraanil koos ajaga (millisekundites alates algusest). Oodatud väljundnäide: 0ms: ping
Lihtne live coding ülesanne (põhiline konkurents) Tingimus: Kirjutage funktsioon fetchAll(urls []string) map[string]string, mis iga URL jaoks teeb samaaegselt HTTP GET-päringu ja tagastab kaardi, kus võti on URL ja väärtus on vastuse keha (string). Kui päring ebaõnnestub (viga, mitte 200), on väärtus tühi string. Piirangud: - Ei tohi kasutada väliseid teeke (ainult standardseid). - Ei tohi muuta allkirja. - Programm ei tohi kokku kukkuda http.Get paanikale. Sisendnäide: ["[link]" "[link]" "[link]"]
peamine pakett import ( "fmt" ) func a(p *string) { s2 := "string2" *p = s2 } func main() { str1 := "string1" p := &str1 fmt.Println(*p) a(&p) fmt.Println(*p) }
Kus logisid hoiti salvestatud?
What to tell the interviewer (if asked) "I would use a worker pool with a fixed number of workers, a task channel, and sync.WaitGroup. The workers will perform the requests, and timeout and cancellation will be controlled via the context. I will gather the results in a buffer protected by a mutex (or through a separate channel)." Now it's your turn Write the code in this chat. I will check it and give feedback. If you don't know where to start, ask for a hint. Good luck!
Kuidas tagasid idempotentsuse?
// kõik slice elemendid peavad olema unikaalsed + kokku 1000 elementi // programm ei tohi time.sleep tõttu tarbetult kinni jääda func main() { checkIncrement := map[int]int32{} var data []int for i := 0; i < 1000; i++ { go func() { data = append(data, i) if _, found := checkIncrement[i]; found { fmt.Println(i) panic("duplikaatne kasv") } checkIncrement[i] = 1 }() } time.Sleep(2 * time.Second) fmt.Println(len(data)) }
Mis on pointer ja mis juhtub, kui funktsiooni argument on pointer?
Täida viil lõikamata elementidega, et see sisaldaks kõiki 1000 elementi.
Räägi Postgres'i lukustustest.
Mis vahe on DELETE ja TRUNCATE vahel?
Kas oled kuulnud jaotatud jälgimisest?
Kuidas te kasutasite Redis?
Räägi mulle oma viimase projekti kohta.