Sobes.tech

Golang

// GetUsersList gibt eine Liste von Benutzern zurück. (In der Datenbank speichern wir etwa 1 Million Benutzer) // Wird verwendet, um die Benutzerliste im Admin-Panel anzuzeigen. Wenn isActive = true, werden nur aktive Benutzer zurückgegeben. 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("Fehler beim Abrufen der Benutzerliste") } var users []User // Informationen zu den Benutzern ausfüllen. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Liste der E-Mails des Benutzers abrufen err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("Fehler beim Abrufen der Benutzerliste") } 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 { emails[i] = strings.ToLower(e) } } user.Emails = emails // Informationen zum Profil aus der VKontakte API abrufen profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("Fehler beim Abrufen der Benutzerliste") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("Fehler beim Abrufen der Benutzerliste") } }

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

Was war deine schwierigste und interessanteste Aufgabe?

Senior
VK Live
43

Wozu dient der Kontext in Go?

Senior
Финтехробот
43

Wie löst man das Problem des Data Race, über das wir gesprochen haben?

Middle
Aliexpress
43

Kannst du einen denkwürdigen Fall hervorheben, auf den du stolz bist?

Senior
МВидеоМВидео
43

Was wird beim Ausführen des Programms ausgegeben: func main() { counter := make([]int, 0, 1000) var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1) go func() { defer wg.Done() counter = append(counter, i) time.Sleep(10 * time.Millisecond) // Arbeitssimulation }() } wg.Wait() fmt.Println(len(counter)) }

Senior
OZONOZON
43

Warum haben Sie genau so viele Dienste gemacht? Wie lief die Entscheidung ab — einen Dienst zu machen oder nicht?

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

Kennst du die Linux-Konsole?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
43

Was ist optimistic locking?

Senior
Lenta Tech
43

Erzählen Sie mir von sich und Ihrem aktuellen Arbeitsplatz

Middle+
АЙ-ТЕКОАЙ-ТЕКО
42

Welche Isolationsstufen gibt es in PostgreSQL und vor welchen Anomalien schützen sie?

Middle+
СБЕРСБЕР
42

Erzähle mir von deiner Erfahrung

Senior
bip.ru
42

Was wissen Sie über das Paket sync/atomic?

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

Welche Praktiken gibt es, um die Größe des Docker-Images zu verringern?

Senior
Flant
42

Haben Sie jemals ein komplexes Projekt von Grund auf neu umgesetzt?

Senior
МВидеоМВидео
42

Haben Sie die Kubernetes YAML-Manifeste für CI/CD selbst geschrieben oder bearbeitet?

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

Warum wird in Serversystemen eine Aufgabenwarteschlange zwischen dem Empfang der Anfrage und deren Verarbeitung verwendet? - Um den Speicherverbrauch zu reduzieren - Um die Ausführung jeder einzelnen Aufgabe zu beschleunigen - Um Lastspitzen auszugleichen und die Handler nicht zu überlasten - Um Netzwerkfehler zu vermeiden

Intern
AvitoAvito
42

Was ist ein Slice? Wie ist er im Inneren aufgebaut?

Senior
Магнит Тех
42

Haben Sie mit agilen Methoden wie Scrum oder Kanban gearbeitet?

Senior
AndersenAndersen
42

Erzähle mir, warum du dich entschieden hast, nach neuen Projekten zu suchen und welche Art von Entwicklung du dir wünschst.

Middle+
purrweb
42
/412