Sobes.tech

Неге азыр бир нерсе издөө чечимине келдиң, эмне үчүн интервьюларга барасың?

Senior
X5
35

Кандидат менен маек куруп жатканда (эгер сурашса) "Мен ишчилердин белгиленген санын камтыган worker pool колдонмокмун, тапшырмалар үчүн канал жана sync.WaitGroup. Ишчілер суроолорду аткарат, убакыттын өтүшү жана токтотуу контекст аркылуу көзөмөлдөнөт. Натыйжаларды mutex менен корголгон буферге чогултам (же өзүнчө канал аркылуу)." Эми сенин кезиң Бул чатта код жаз. Мен текшерип, кайтарым берем. Эмне менен баштоо керектигин билбесең, кеңеш сура. Ийгилик!

Senior
FREEDOM LIFESTYLE
35

Төрт гуруруттан бир убакта товарларды бир себетке кошууда race condition маселесин кантип чечсе болот?

Middle+
КуперКупер
35

Transfers жана accounts таблицаларынын ортосундагы байланыш кандай болот (бир таблицада эки FK)?

Senior
Lamoda Tech
35

Командада архитектура менен ким алектенди?

Middle
X5 groupX5 group
35

// 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("колдонуучулардын тизмесин алуудө ката") } }

Middle
СитиДрайвСитиДрайв
35

Вазиптин сүрөттөмөсү менен тааныштыңызбы?

Senior
HR
35

HTTP жана HTTPS ортосундагы айырма эмне?

Senior
AvitoAvito
35

GET жана POST ортосунда эмнелер айырмаланат?

Middle+
FanZino
35

Сизде заманбап фронтенд-рамкалар менен иштөө тажрыйбасы барбы (Vue, React, Svelte)? Реактивдүүлүк деген эмне жана ал Reactте кантип ишке ашырылат?

Middle
Graveling
35

Күндүк тапшырмаларда эң көп эмне менен алектендиңиз? Ката түзөтүү, рефакторинг, колдоо, жаңы функцияларды иштеп чыгуу?

Middle+
OZONOZON
35

Окуулар устаз менен, реплика менен же кандай бөлүштүрүлгөн?

Senior
WildberriesWildberries
35

Тимден / жетекчиңизден эмне күтөсүз? Ал эмне кылышы керек, кандай жардам бере алат?

Senior
OZONOZON
35

Таза архитектура деген эмне? Эмне үчүн керек?

Middle
СБЕРСБЕР
35

Бюджеттелген жана бюджетсиз каналдар жөнүндө айтып бер. Качан колдонобуз? Алар кантип блоктолот жана качан deadlockка кирет?

Middle
АО Медиа Эффект
35

[Компания]деги тажрыйбаңыз жөнүндө айтып бериңиз.

Senior
AstraTech
35

Неге так көп кызматтарды жасадыңыз? Тандоо кандай болду — кызмат кылуу же кылбоо?

Middle+
РамблерРамблер
35

Машина үйрөнүү менен алектендиңизби?

Senior
sber tech
35

PostgreSQLдеги транзакциялар жөнүндө айтып бер. ACID деген эмне жана изоляция деңгээлдери кандай?

Middle
АО Медиа Эффект
35

Талдоо: 320k жалпы (~280k таза) + кварталдык премия 20%. Шарттарды кандайсың?

Senior
X5
35
/412