Sobes.tech

Golang

¿Cómo se realiza el intercambio de señales mediante canales en el sistema de programación?

Junior — Middle
134

¿Cómo se implementa en Go el manejo de estados panicos y el procesamiento de errores causados por situaciones de emergencia?

Junior — Middle
Lamoda Tech
Магнит Тех
Самокат Тех
+1
134

¿Qué se hizo exactamente con los duplicados después de su detección? ¿Dónde se limpiaron?

Middle+
ВайлдберрисВайлдберрис
134

¿Qué métodos y herramientas utilizó para analizar y determinar las causas de los problemas de carga en los sistemas?

Junior — Middle
Indrive
134

¿Qué comandos sueles usar en el sistema operativo Linux?

Junior — Middle
Mail.ruMail.ru
134

¿Qué enfoques se pueden utilizar para garantizar la seguridad de los hilos al trabajar con slices en un entorno multihilo?

Middle — Middle+
Betera Group
134

¿Qué operaciones son permitidas al trabajar con un slice nil en el lenguaje de programación?

Junior — Middle
Кадровое агентство BWG
134

Cuéntame sobre una tarea difícil que pudiste resolver escribiendo un script para el sistema Linux

Junior — Middle
Mail.ruMail.ru
134

¿Cómo se puede regular la cantidad de datos almacenados en la caché?

Junior — Middle
КасперскийКасперский
134

Disposición para actuar como el único especialista en Backend en el equipo

Junior — Middle
FAQ media holding
134

¿Cuál es la principal razón para usar el tipo sync.Map en Go?

Junior — Middle
YadroYadro
134

¿Cuáles son las buenas prácticas y los anti-patrones en las pruebas unitarias? ¿Cómo saber si las pruebas son buenas?

Middle+
X5
134

¿Cuáles son las ventajas y desventajas del uso de caché en los sistemas?

Junior — Middle
КасперскийКасперский
134

func Exclude(a, b []int) []int { set := make(map[int]struct{}) for _, v := range b { set[v] = struct{}{} } result := make([]int, 0) for _, v := range a { if _, ok := set[v]; !ok { result = append(result, v) } } return result } Error de compilación # command-line-arguments ./main.go:39:32: error de sintaxis: salto de línea inesperado, se esperaba { después de la cláusula if

Senior
OZONOZON
134

¿Alguna vez ha enfrentado dificultades al implementar interacciones entre diferentes servicios?

Junior — Middle
Mail.ruMail.ru
134

¿Cómo se pasa un segmento (slice) a una función en un lenguaje de programación?

Junior — Middle
МТС DigitalМТС Digital
134

¿Qué es el patrón Saga?

Middle+
Magnit Tech
134

¿Por qué no tomaron Testcontainers?

Senior
OkkoOkko
134

/* Necesitamos transferir datos desde una fuente a un consumidor. La fuente entrega los datos en pequeños lotes (~decenas de registros), mientras que el consumidor funciona de manera más eficiente con lotes grandes. Un ejemplo real es la transferencia de datos desde colas tipo Kafka a la base de datos Clickhouse. Fuente: - Prácticamente infinita. - La fuente nunca devuelve más de MaxItems registros en una sola llamada a Next. - Dentro de una "sesión" (una llamada a la función Pipe), la fuente devuelve datos nuevos en cada llamada a Next. - Sin embargo, tras reiniciar, la fuente comenzará desde la posición "confirmada" anterior, indicada por cookie. Por lo tanto, *cada* valor de cookie que devuelve Next, después de guardar los datos en el receptor, debe ser confirmado con una llamada a Commit, en el mismo orden en que fueron devueltos por Next. Receptor: - No puede procesar más de MaxItems a la vez. Nivel básico: Se requiere implementar la función func Pipe(p Producer, c Consumer) error que lee datos de la fuente, los agrupa en un buffer de tamaño no mayor a MaxItems y los guarda en el receptor, y luego confirma el progreso en la fuente. */ const MaxItems = 9999 type Producer interface { // Next devuelve: // - un lote de items para procesar // - una cookie para confirmar cuando se complete el procesamiento // - error Next() (items []any, cookie int, err error) // Commit se usa para marcar el lote de datos como procesado Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

Middle
Яндекс
134

¿Una tabla con (id PRIMARY KEY, data JSON) es una buena opción de índice en PostgreSQL para buscar por clave?

Middle+
МВидеоМВидео
134
/412