Golang
¿Qué más ocurrirá (además del pánico) al escribir en un mapa de forma concurrente sin sincronización?
¿Qué sucederá si se inician 5 billones de goroutines? ¿Cómo optimizar?
¿En qué opción de conversión de tipo es posible un pánico y qué construcción permite evitarlo?
¿Cuáles son las desventajas de pasar una entidad a través del contexto en Go?
¿Por qué ingresaste en el mercado y qué es importante ahora al elegir un nuevo empleador o un nuevo proyecto? ¿Hay una diferencia fundamental entre fintech y retail?
¿Puedes contarme sobre tu experiencia trabajando con PostgreSQL: diseñaste esquemas, optimizaste consultas, administraste?
¿ Construiste análisis en tiempo real o qué objetivos perseguías inicialmente?
¿Qué impacto has tenido en tus proyectos anteriores?
¿Por qué Go? ¿Por dónde empezaste, cómo llegaste a este lenguaje?
¿Qué primitivas de sincronización de goroutines existen en Go?
¿Qué mecanismos de sincronización en Go conoces?
¿Qué sabe sobre la empresa VES?
Las actualizaciones de documentos llegan al servicio mensaje Documento { string Url = 1; // URL del documento, su identificador único uint64 PubDate = 2; // tiempo de publicación declarado del documento uint64 FetchTime = 3; // tiempo de recepción de esta actualización del documento, puede considerarse como identificador de versión. El par (Url, FetchTime) es único. string Text = 4; // texto del documento uint64 FirstFetchTime = 5; // inicialmente ausente, debe completarse } Los documentos pueden llegar en cualquier orden (no en el orden en que fueron actualizados), y también puede haber mensajes duplicados. Es necesario en la salida formar mensajes iguales, pero con campos corregidos según las siguientes reglas (todo lo mencionado a continuación es para un grupo de documentos con el mismo campo Url): El campo Text y FetchTime deben ser iguales a los del documento con el mayor FetchTime recibido hasta ahora. El campo PubDate debe ser igual al del mensaje con el menor FetchTime. El campo FirstFetchTime debe ser igual al valor mínimo de FetchTime. Es decir, en cada momento tomamos PubDate y FirstFetchTime del primer versión recibida hasta ahora (si las ordenamos por FetchTime), y Text de la última. La interfaz en el código puede implementarse así: type Processor interface { Process(doc *Document) (*Document, error) } Este código funcionará en un servicio que lee mensajes de una cola (Kafka o similar), y también escribe el resultado en la cola. Si Process devuelve Null, no se escribe nada en la cola.
¿Cómo influiste en el cambio del proceso con análisis?
¿Qué es el contexto en Go y para qué sirve?
¿Con qué trabajó con más frecuencia? ¿Qué tecnologías utilizó?
¿Puedes manejar un pánico en uno de los defer?
¿Se pueden agregar o eliminar elementos en un mapa durante el proceso de evacuación?
¿Usaron ambos gRPC y REST o solo gRPC?
¿Por qué es una tarea técnicamente difícil? ¿Por qué no simplemente una función de 100 líneas?