Sobes.tech

Golang

Opowiedz mi o mapie w Go: jak jest zbudowana, jaka jest złożoność operacji w średnim i najgorszym przypadku.

Middle
ООО Левел Тревел
59

Napisz funkcję, która sprawdza, czy ciąg znaków jest palindromem. - Palindrom to sekwencja znaków czytana tak samo w obu kierunkach. - Należy sprawdzać tylko znaki alfabetu a-zA-Zа-А-я, nie uwzględniając wielkości liter.

Middle
VKVK
59

W jakiej kolejności operator select odczytuje z wielu kanałów?

Middle+
ТБанк
59

Jaki jest powód twojego odejścia z poprzedniej firmy?

Middle+
Гоуланг
59

Co się stanie z limiterem przepustowości Token Bucket w scenariuszu: 1 żądanie na początku sekundy, 99 na końcu, a następnie kolejne 100 w następnej sekundzie?

Senior
Холодильник.руХолодильник.ру
59

Opowiedz o swoim obecnym miejscu pracy i usłudze enrichment — czym jest ta usługa, jakie ma obowiązki?

Senior
А7
59

Jak były rozwiązywane?

Senior
Холодильник.руХолодильник.ру
59

Jak zdecydowałeś, na jakie części podzielić monolit?

Senior
РамблерРамблер
59

// GetUsersList zwraca listę użytkowników. (w bazie danych przechowujemy około 1 miliona użytkowników) // Używany do wyświetlania listy użytkowników w panelu administratora. Jeśli isActive = true, zwracani są tylko aktywni użytkownicy. 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("błąd podczas pobierania listy użytkowników") } var users []User // Wypełnij informacje o użytkownikach. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Pobierz listę e-maili użytkownika err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("błąd podczas pobierania listy użytkowników") } 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 // Pobierz informacje o profilu z API VKontakte profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("błąd podczas pobierania listy użytkowników") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("błąd podczas pobierania listy użytkowników") } }

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

Jak długo szukasz? Czy masz już oferty w ręku?

Senior
Spectr
59

Jaka jest różnica między HTTP a HTTPS?

Senior
AvitoAvito
59

Dlaczego w sync/atomic wymagane są wyrównane wskaźniki?

Middle
Еаптека
59

Ile może być masterów w replikacji?

Senior
Small
59

Czy czytania odbywały się z mistrzem, z repliką, czy jak były rozdzielane?

Senior
WildberriesWildberries
59

Jak wygląda proces rejestracji dochodów samozatrudnionych?

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

Co zostanie wyświetlone podczas uruchamiania programu: 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) // Symulacja pracy }() } wg.Wait() fmt.Println(len(counter)) }

Senior
OZONOZON
59

Jak skaluje się Kafka?

Senior
I-teco
59

Opowiedz o sobie, swoim doświadczeniu i projektach

Senior
СБЕРСБЕР
59

Opowiedz mi o kolejce priorytetowej

Middle
VKVK
59

[imię] zapytał: przy zachowaniu pozycji elementu mniejszej niż X, jaka będzie pozycja?

Senior
Яндекс
59
/412