Golang
Prašome papasakoti, kokia kalba šiuo metu naudojate kaip pagrindinę? Ar turite papildomų kalbų, su kuriomis dirbate?
Kas dabar tave motyvuoja ieškoti naujo darbo?
Kas yra slice Go? kuo skiriasi len ir cap?
Lentelių normalizavimas ir denormalizavimas — papasakok apie normalias formas
Ar duomenų centrai buvo visiškai kopijos vieni kitų, ar jie papildė vienas kitą? Ar tik maršrutizavote srautą tarp jų?
Kokie duomenų kiekiai pateko į ClickHouse?
Ar turite patirties dirbant su Docker? Ar turite patirties rašant Dockerfile patys?
Ar tiesa, kad PostgreSQL B-medžio indeksas linkęs plėstis į plotį?
// GetUsersList grąžina naudotojų sąrašą. (duomenų bazėje saugoma apie 1 milijoną naudotojų) // Naudojama naudotojų sąrašo rodymui administratoriaus panelėje. Jei isActive = true, grąžinami tik aktyvūs naudotojai. func (u *UsersRepo) GetUsersList(ctx context.Context, isActive bool) ([]User, error) { rows, err := u.DB.Query("SELECT id, name, phone FROM users WHERE is_active = ?", isActive) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } var users []User // Užpildykite naudotojų informaciją. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Gaukite naudotojo el. pašto sąrašą err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } var emails []string for er.Next() { var email string err := rows.Scan(&email) if err != nil { return nil, err } emails = append(emails, email) } if len(emails) != 0 { for i, e := range emails { e = strings.ToLower(e) emails[i] = e } } user.Emails = emails // Gaukite profilio informaciją iš VK API profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } }
Ar normalu, kad tiesiogiai iš užsakymo paslaugos pereiname į mokėjimo paslaugą?
Papaskink apie konkurencingą apdorojimą — turi tam atskirą punktą. Kaip ribojote lygiagretumą? Kiek buvo jungčių prie PostgreSQL?
Ar mūsų mokėjimo webhook paslauga yra stateful?
Paaiškinkite skirtumą tarp LIFO ir FIFO, naudodami pavyzdį su steku ir eile.
Kas atlieka virtualių adresų vertimą į fizinius?
Kodėl naudojo mutex? Kaip čia matai race condition ir kodėl žemėlapis nėra saugus keliems srautams?
Kaip buvo filtruojami dubliuojantys įrašai? Ar nebuvo galima nustatyti dubliantį pagal ID? Kodėl reikia papildyti duomenis iš Redis?
Ar [vardas] turi patirties teikiant paslaugas — dirbant su Kubernetes, Linux ir kt.?
Išvardinkite pagrindinius duomenų tipus Go kalboje
Kas yra rune Go?
Kokios problemos kyla daugiagijinės sąveikos metu ir kaip jas spręsti?