Sobes.tech
Junior — Middle

¿Puedes mencionar errores típicos que se cometen al usar transacciones?

sobes.tech AI

Respuesta de la IA

Errores comunes al trabajar con transacciones en Go:

  1. Ignorar errores de forma implícita — olvidar verificar los errores después de operaciones con transacciones (por ejemplo, después de tx.Commit() o tx.Rollback()), lo que puede llevar a problemas no detectados.

  2. Falta de rollback en caso de errores — si ocurre un error durante la transacción, no se llama a tx.Rollback(), lo que puede causar bloqueos o inconsistencias en los datos.

  3. Llamada doble a Commit o Rollback — llamar varias veces a estos métodos puede causar pánicos o errores.

  4. Mantener la transacción abierta por mucho tiempo — mantener la transacción abierta demasiado tiempo bloquea otras operaciones y reduce el rendimiento.

  5. Usar transacciones sin contexto — no pasar context.Context a los métodos, lo que complica la cancelación o los límites de tiempo.

Ejemplo de uso correcto de una transacción:

ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
    // manejo del error
}

// Realizar operaciones
if _, err := tx.ExecContext(ctx, "INSERT INTO ..."); err != nil {
    tx.Rollback()
    return err
}

if err := tx.Commit(); err != nil {
    return err
}

Es importante siempre manejar los errores y finalizar la transacción correctamente.