Golang
paquete principal función principal() { c := hacer(canal de int) para rango 3 { seleccionar { predeterminado: imprimir(1) caso <-c: imprimir(2) caso c <- 1: imprimir(3) } } }
¿Cuáles son los tipos de interacción entre procesos (IPC)?
¿Cómo se realizaba la adición y eliminación de reglas si era un gran switch-case?
¿Cómo deben los desarrolladores usar las herramientas de IA para la generación o revisión de código, y qué pasos son necesarios para validar su salida?
¿Es suficiente la biblioteca estándar net/http para escribir un servidor web de producción en Go puro sin frameworks?
Cuéntame, ¿cómo te desarrollas y aprendes, qué estás estudiando ahora?
```go type User struct { ID int Name string } var ( dbHits int ) func getUserInfoFromDB(id int) User { time.Sleep(100 * time.Millisecond) dbHits++ return User{ID: id, Name: fmt.Sprintf("User-%d", id), } } func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func(i int) { defer wg.Done() fmt.Println(getUserInfoFromDB(i)) }(42) } wg.Wait() fmt.Println("DB hits:", dbHits) } ``` Corregir el error en el código relacionado con el acceso concurrente a la variable dbHits.
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
¿Por qué decidiste cambiar de trabajo?
¿Cómo están relacionados la cadena de bloques y el teorema CAP? ¿La cadena de bloques siempre está disponible?
¿Cuál es tu idioma principal de desarrollo y cuántos años de experiencia tienes?
¿Has trabajado con índices compuestos?
Hay una biblioteca en Go — LRU, donde se puede pasar Any y establecer TTL. ¿Por qué se eligió Redis en lugar de ella?
Cuéntenos sobre las goroutines y en qué se diferencian de los hilos del sistema operativo.
¿Hay alguna pregunta sobre las etapas de la entrevista?
¿Cómo se puede, a nivel de transacción en la base de datos, enviar solo un grupo cuando varias responden simultáneamente a una señal en un sistema de respuesta rápida?
En la arquitectura x86, la instrucción de interrupción ocupa dos bytes, pero la interrupción con el número 3 tiene una variante alternativa de un byte. ¿Por qué fue necesario esto?
¿Podemos crear un array cuyos elementos sean de diferentes tipos, por ejemplo 1, "A" y false?
Tenemos 3 particiones y 3 consumidores, el retraso está creciendo. ¿Cómo puede ayudar KEDA en esta situación?
¿Tienes ofertas en este momento o todavía estás en proceso de entrevistas?