Golang
Cuéntame sobre el procesamiento competitivo: cómo se limitó el paralelismo, cómo se seleccionaron los parámetros mediante mediciones?
1. ¿Qué mostrará, cómo corregirlo, cómo hacer que sea seguro para concurrencia (waitGroup) 2. Eliminar duplicados en la lista
¿Qué documentación escribes al desarrollar un nuevo servicio?
¿Qué es la construcción `<-ch` en Go?
¿Qué tipos de API web conoces? ¿En qué se diferencia REST de RPC en esencia?
¿Cómo verifica JWT su autenticidad? ¿Cómo se asegura de que el token no sea falsificado?
¿Por qué decidió salir al mercado y buscar un nuevo trabajo?
¿Qué es el análisis de escape? ¿Cómo determina dónde se colocará la variable (en la pila o en el montón)?
¿Cómo sueles probar los manejadores HTTP en Go?
¿Qué es una gorutina y en qué se diferencia de un hilo del sistema?
Hay un manejador HTTP que realiza una consulta SELECT compleja en la base de datos, y el usuario no está satisfecho con la larga espera. ¿Cuál es la secuencia de acciones para diagnosticar y optimizar?
¿Cuáles son sus expectativas salariales? ¿Cómo se estructuró su ingreso anterior (salario base, bonificaciones)? ¿Está dispuesto a considerar ingresos totales incluyendo bonificaciones?
/* Hay una aplicación con arquitectura de microservicios. Un microservicio se puede abstraer mediante la interfaz Backend. Para acceder a una instancia de microservicio, se puede usar el tipo BackendImpl, que ya está implementado. Cada microservicio tiene varias decenas de instancias en ejecución, cada una accesible por su propia dirección addr. Sin embargo, las instancias individuales del microservicio no son confiables: pueden fallar, estar inaccesibles o sobrecargadas. Por eso, necesitas implementar el tipo Balancer, que también implementa la interfaz Backend y realiza balanceo de carga en el lado del cliente entre las instancias del microservicio, elegiendo cada vez la instancia **menos cargada**. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contiene ip:puerto de una instancia específica func NewBackend(addr string) *BackendImpl type Balancer struct { //TODO } var _ Backend = &Balancer{} // addrs contienen las direcciones de todas las instancias balanceadas func NewBalancer(addrs []string) *Balancer { //TODO }
¿Cómo tienes configurados los grupos de consumidores en Kafka? ¿Cuántos temas, desde dónde lees?
Cuéntame sobre los slices en Go: qué son, de qué están compuestos, qué sucede al hacer append en una función que recibe un slice?
Cuéntame sobre un fallo en el trabajo.
¿Conoces los principios de diseño SOLID?
¿Cuál es la diferencia entre un lenguaje interpretado (Python) y uno compilado (Go)? ¿Qué factores influyen en la elección?
¿Cuáles son tus expectativas salariales?
¿Qué sabes sobre el programa de multitrack de Yandex?