Sobes.tech

Golang

// GetUsersList atgriež lietotāju sarakstu. (datu bāzē tiek glabāti aptuveni 1 miljons lietotāju) // Izmanto lietotāju saraksta rādīšanai administrācijas panelī. Ja isActive = true, tiek atgriezti tikai aktīvie lietotāji. 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("kļūda, iegūstot lietotāju sarakstu") } var users []User // Aizpildiet informāciju par lietotājiem. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Iegūstiet lietotāja e-pasta sarakstu err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } 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 // Iegūstiet profila informāciju no VK API profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } }

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

Vai esat iepazinies ar vakances aprakstu?

Senior
HR
35

Kāda ir atšķirība starp HTTP un HTTPS?

Senior
AvitoAvito
35

Kāda ir atšķirība starp GET un POST?

Middle+
FanZino
35

Lūdzu, pastāsti, kur šobrīd strādā un ko dari.

Middle
МВидео/эльдорадо
35

Vai jums ir pieredze ar moderniem frontend ietvara (Vue, React, Svelte)? Kas ir reaktivitate un kā tā tiek īstenota React?

Middle
Graveling
35

Kā plānotājs pārtrauc gorutīnu, kas ieiet bezgalīgā ciklā?

Senior
А7
35

Ko tu gaidi no komandas / vadītāja? Ko viņš ir jāizdara, kā palīdzēt?

Senior
OZONOZON
35

Pastāsti par buferētajiem un nebuferētajiem kanāliem. Kad mēs tos izmantojam? Kā tie bloķējas un kad notiek deadlock?

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

Pastāstiet par savu pieredzi [uzņēmums].

Senior
AstraTech
35

Kāpēc jūs izdarījāt tieši tik daudz pakalpojumu? Kā notika izvēle — veidot pakalpojumu vai nē?

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

Vai mūsu maksājumu webhook pakalpojums ir stateful?

Senior
Магнит Тех
35

Vai esat nodarbojies ar mašīnmācību?

Senior
sber tech
35

Pastāsti par transakcijām PostgreSQL. Kas ir ACID un izolācijas līmeņi?

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

Piedāvājums: 320k bruto (~280k neto) + ceturkšņa prēmija 20%. Kā jums šķiet šie nosacījumi?

Senior
X5
35

Kas tev ir svarīgs, izvēloties jaunu darba vietu?

Senior
AltDev
35

Kā tika filtrēti dublikāti? Vai nebija iespējams noteikt dublikātu pēc ID? Kāpēc papildināt datus no Redis?

Senior
OkkoOkko
35

Vai tev būs nepieciešams divu nedēļu apmācība?

Middle+
2gis2gis
35

Jūs esat rakstnieks, pārvaldāt savu mini blogu un tur publicējat rakstus. Jūsu bloga lietotāji (lasītāji), pēc autorizācijas, var tos apskatīt/lasīt. Nepieciešams ieviest funkcionalitāti, kas skaita unikālos skatījumus dienā katram rakstam. Funkcionālie prasības: - Šodienas statistika: autors var redzēt, cik unikālo lietotāju ir skatījuši viņa rakstu šodien (dati tiek vākti reāllaikā). - Iepriekšējo dienu statistika: autors var redzēt statistiku par jebkuru iepriekšējo dienu (piemēram, vakar). Tehniskie ierobežojumi un nosacījumi: - Lietojumprogramma darbojas uz viena servera (viens pods) - Atmiņas glabāšana - Laiks UTC0

Senior
А7
35

Ar kurām datu bāzēm esat strādājis un kādā līmenī? Vairāk par PostgreSQL, Redis, ClickHouse.

Senior
ООО Дэстэн Партнерс
35
/412