Sobes.tech

Golang

¿Qué más recuerdos interesantes tienes sobre las tareas de producto y negocio en las que participaste o realizaste por tu cuenta?

Senior
X5 techX5 tech
71

¿Cómo funciona un índice compuesto (A, B, C) en las consultas?

Middle+
Magnit Tech
71

¿Qué sucede si durante el enriquecimiento uno de los servicios no está disponible (por ejemplo, el servicio con el nombre completo/datos del usuario)? ¿Se detiene todo Kafka?

Senior
А7
71

Cuéntame sobre tu experiencia trabajando con PostgreSQL. ¿Has abordado cuestiones de optimización?

Middle+
Servicepipi
71

¿Qué mostrará el programa? ¿Por qué? ```go func main() { timeStart := time.Now() _, _ = <-worker(), <-worker() println(int(time.Since(timeStart).Seconds())) } func worker() chan int { ch := make(chan int) go func() { time.Sleep(3 * time.Second) ch <- 1 }() return ch } ```

Senior
Озон банк
71

¿Cuál es la diferencia entre procesos, hilos y goroutines en Go?

Middle+
Ozon ФинтехOzon Финтех
71

¿Cómo averiguar por qué el bolígrafo responde lentamente? ¿Cómo usar pprof?

Senior
Бюро 1440Бюро 1440
71

Cuéntame cómo optimizaste las consultas. De 10-12 minutos a 5-7 — ¿qué informes son esos que tardan tanto en ejecutarse?

Senior
МВидео/эльдорадо
71

¿Qué es el patrón Outbox y cómo se implementa?

Senior
Mayflower
71

¿Qué significa el ampersand (&) antes de http.Client{}?

Middle+
MAX LTD Group
71

¿Cómo fue el proceso desde la idea de negocio hasta la venta?

Senior
WildberriesWildberries
71

Implementa una función para encontrar el servicio con la mayor cantidad de registros en cada namespace. ¿Cuál es la complejidad de los algoritmos para top-1, top-2, top-10?

Middle+
X5 groupX5 group
71

Si le hacemos una oferta, ¿cuánto tiempo le tomaría unirse?

Senior
ВкусВиллВкусВилл
71

/* Hay dos servidores PostgreSQL: * PROD - servidor OLTP, * STATS - servidor para consultas analíticas prolongadas. En el servidor actual, en la base de datos prod, hay una tabla grande (10Tb) de la siguiente forma: CREATE TABLE profiles( id SERIAL, data JSONB ) En la tabla pueden haber "agujeros", es decir, algunos `id` pueden estar ausentes. Se necesita escribir un programa para copiar la tabla profiles desde PROD a STATS. Se supone que se usarán las siguientes interfaces para trabajar con bases de datos: type Row []interface{} type Database interface { // la implementación de la interfaz Database puede volver a establecer conexiones // la llamada a SaveRows es idempotente io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Si full=false, continuar la transferencia de datos desde el lugar del error anterior // Si full=true, transferir todos los datos func CopyTable(fromName string, toName string, full bool) error { // ... tu código } Si se pasa la opción `full=false`, el programa debe continuar la transferencia de datos desde el lugar del error anterior. Si `full=true`, debe transferir todos los datos. **Nivel básico**: - transferencia secuencial de datos en un solo hilo - recuperación ante fallos (opción `full=false`) Información adicional: - si es necesario, puedes ampliar la interfaz agregando tus propios métodos - si es necesario, puedes usar directamente el paquete **database/sql**

Senior
Яндекс
71

Hay particionamiento de usuarios por ID. El servicio recibe una solicitud para actualizar la contraseña de un usuario — ¿qué sucede después a nivel del servicio?

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

¿Dónde se almacenaron los registros?

Senior
FREEDOM LIFESTYLE
71

¿Cuál es la diferencia entre una goroutine y un hilo del sistema operativo?

Middle
VKVK
71

¿Para qué está escrito este código? ¿Qué problema técnico de negocio resuelve?

Senior
МТС CloudМТС Cloud
71

Resumen sobre producción: quién despliega, quién monitorea, etc.

Senior
OZONOZON
71

func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }

Intern
Яндекс
71
/411