Golang
¿Qué te motiva ahora a buscar un nuevo trabajo?
¿Qué es un slice en Go? ¿En qué se diferencian len y cap?
Normalización y desnormalización de tablas — cuéntame sobre las formas normales
¿Los centros de datos eran copias completas entre sí, o se complementaban? ¿Simplemente enrutabas el tráfico entre ellos?
¿Qué volúmenes de datos entraron en ClickHouse?
¿Tiene experiencia trabajando con Docker? ¿Tiene experiencia escribiendo Dockerfile por su cuenta?
¿Es cierto que el índice B-tree en PostgreSQL tiende a expandirse en ancho?
// GetUsersList devuelve una lista de usuarios. (en la base de datos almacenamos aproximadamente 1 millón de usuarios) // Se usa para mostrar la lista de usuarios en el panel de administración. Si isActive = true, solo se devuelven los usuarios activos. 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("error al obtener la lista de usuarios") } var users []User // Rellenar información sobre los usuarios. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Obtener la lista de correos electrónicos del usuario err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("error al obtener la lista de usuarios") } 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 // Obtener información del perfil desde la API de VKontakte profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("error al obtener la lista de usuarios") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("error al obtener la lista de usuarios") } }
¿Es correcto que vayamos directamente del servicio de pedidos al servicio de pago?
Cuéntame sobre el procesamiento competitivo: tienes un apartado dedicado a esto. ¿Cómo limitaban la paralelización? ¿Cuántas conexiones a PostgreSQL había?
¿Hace que nuestro servicio de pago webhook sea con estado?
Explique la diferencia entre LIFO y FIFO usando un ejemplo de pila y cola.
¿Quién realiza la traducción de direcciones virtuales a físicas?
¿Para qué usaste mutex? ¿Cómo ves la condición de carrera aquí y por qué el mapa es inseguro para los hilos?
¿Cómo se filtraban los duplicados? ¿No se podía identificar un duplicado por ID? ¿Por qué enriquecer los datos desde Redis?
¿[nombre] ha tenido experiencia en la operación de servicios — trabajando con Kubernetes, Linux, etc.?
Enumere los principales tipos de datos en Go
¿Qué es rune en Go?
¿Qué problemas surgen en la interacción multihilo y cómo se resuelven?
¿Qué más había en el microservicio además del procesamiento asíncrono?