Golang
¿Qué característica has desarrollado de la que estás orgulloso? Cuéntame sobre la última tarea interesante.
¿Cómo funciona el recolector de basura en Go? Describe las fases y el algoritmo.
Tienes muchas tareas técnicas escritas. Por favor, cuéntame qué tareas de producto ayudaron a resolver.
¿Qué métricas? ¿Con qué herramientas vamos a registrar estas métricas?
Cuéntenos sobre la influencia de GOGC en el trabajo del recolector de basura y cómo optimizar el uso de la memoria.
Impresión general de la entrevista, nivel del candidato, recomendaciones
¿Qué te motiva en el trabajo? ¿Qué es importante al elegir un nuevo lugar?
¿Tuviste una revisión de código? ¿Cómo fue organizada?
¿Qué es la partición y el sharding?
Describe el flujo de cómo una solicitud HTTP pasa desde el navegador hasta la aplicación en PHP.
Implemente una función Filter con soporte para genéricos, que acepte una lista y una función predicado, y devuelva una lista filtrada
¿Qué sucederá con los datos en la segunda rebanada si se crea a partir de la primera con capacidad 5, y luego la capacidad se aumenta a 10?
¿En qué se diferencia JSON de JSONB en PostgreSQL?
¿Qué mostrará el código con slices y pasándolos a una función? ¿Cómo funciona la transmisión de slices a una función?
Cuéntame sobre los patrones de diseño. ¿Qué es el bloqueo con doble comprobación y para qué se utiliza?
¿Tiene experiencia en participar en cribados técnicos o entrevistas?
¿Debería agregar un índice para un campo booleano?
// Existe una interfaz Backend con el método Execute // Se necesita escribir un balanceador de carga // El balanceador cumple con la interfaz Backend // La tarea del balanceador es aceptar una solicitud y delegarla a uno de los backends disponibles // El balanceador contiene en sí una colección de backends // Al ejecutar una solicitud, el balanceador elige uno de los backends según algún algoritmo // // Algoritmo Least Connection, verificación de estado y recuperación automática, hacemos thread safety mediante atomic, transmisión de contexto para cancelación, umbral de errores para desconectar un backend // Request representa la solicitud de entrada para Backend. type Request struct { // Payload – datos arbitrarios de la solicitud. Payload []byte } // Response representa la respuesta de Backend. type Response struct { // Payload – datos arbitrarios de la respuesta. Payload []byte } // Backend – interfaz que define el método para ejecutar una solicitud type Backend interface { Execute(ctx context.Context, req Request) (Response, error) } type Balancer struct { backends []Backend } func NewBalancer(backends []Backend) *Balancer { return &Balancer{backends: backends} } func (b *Balancer) Execute(ctx context.Context, req Request) (Response, error) { // todo: implementar lógica del balanceador return Response{}, nil } type TestBackend struct { }
¿Qué es un reverso proxy y qué se suele usar para implementarlo?
¿Dónde debe ubicarse la validación del negocio (por ejemplo, verificar fechas, límite de reserva de 10 días)? ¿En el manejador o en el servicio?