Golang
Неге азыр бир нерсе издөө чечимине келдиң, эмне үчүн интервьюларга барасың?
Кандидат менен маек куруп жатканда (эгер сурашса) "Мен ишчилердин белгиленген санын камтыган worker pool колдонмокмун, тапшырмалар үчүн канал жана sync.WaitGroup. Ишчілер суроолорду аткарат, убакыттын өтүшү жана токтотуу контекст аркылуу көзөмөлдөнөт. Натыйжаларды mutex менен корголгон буферге чогултам (же өзүнчө канал аркылуу)." Эми сенин кезиң Бул чатта код жаз. Мен текшерип, кайтарым берем. Эмне менен баштоо керектигин билбесең, кеңеш сура. Ийгилик!
Төрт гуруруттан бир убакта товарларды бир себетке кошууда race condition маселесин кантип чечсе болот?
Transfers жана accounts таблицаларынын ортосундагы байланыш кандай болот (бир таблицада эки FK)?
Командада архитектура менен ким алектенди?
// GetUsersList колдонуучулардын тизмесин кайтарат. (Маалыматтар базасында болжол менен 1 миллион колдонуучу сакталат) // Административдик панелде колдонуучулардын тизмесин көрсөтүү үчүн колдонулат. Эгер isActive = true болсо, only активдүү колдонуучулар кайтарылат. 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("колдонуучулардын тизмесин алуудө ката") } var users []User // Колдонуучулар тууралуу маалыматтарды толтуруңуз. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Колдонуучунун электрондук почта тизмесин алыңыз err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } 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 // VK API'сынан профилдик маалыматтарды алыңыз profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } }
Вазиптин сүрөттөмөсү менен тааныштыңызбы?
HTTP жана HTTPS ортосундагы айырма эмне?
GET жана POST ортосунда эмнелер айырмаланат?
Сизде заманбап фронтенд-рамкалар менен иштөө тажрыйбасы барбы (Vue, React, Svelte)? Реактивдүүлүк деген эмне жана ал Reactте кантип ишке ашырылат?
Күндүк тапшырмаларда эң көп эмне менен алектендиңиз? Ката түзөтүү, рефакторинг, колдоо, жаңы функцияларды иштеп чыгуу?
Окуулар устаз менен, реплика менен же кандай бөлүштүрүлгөн?
Тимден / жетекчиңизден эмне күтөсүз? Ал эмне кылышы керек, кандай жардам бере алат?
Таза архитектура деген эмне? Эмне үчүн керек?
Бюджеттелген жана бюджетсиз каналдар жөнүндө айтып бер. Качан колдонобуз? Алар кантип блоктолот жана качан deadlockка кирет?
[Компания]деги тажрыйбаңыз жөнүндө айтып бериңиз.
Неге так көп кызматтарды жасадыңыз? Тандоо кандай болду — кызмат кылуу же кылбоо?
Машина үйрөнүү менен алектендиңизби?
PostgreSQLдеги транзакциялар жөнүндө айтып бер. ACID деген эмне жана изоляция деңгээлдери кандай?
Талдоо: 320k жалпы (~280k таза) + кварталдык премия 20%. Шарттарды кандайсың?