Tipo de problema
Deuda técnica
Descripción
Dos problemas relacionados:
1. runScan demasiado larga
La función tiene 284 líneas y mezcla: validación, setup de DB, iteración de cuentas, fetch de costes, descubrimiento de recursos, commitments, auto-pruning y resumen.
2. Sin propagación de context.Context
Casi todas las funciones de provider y analysis crean context.Background() internamente. La interfaz Provider no acepta context.Context.
Localización
cmd/scan.go:L49-L333
internal/provider/aws/costs.go:L50, discovery.go:L54, organization.go:L20,L67, commitments.go:L16
internal/analysis/anomaly.go:L33, compare.go:L34, summary.go:L60, trends.go:L36
Impacto
- Función imposible de testear por partes
- No hay forma de cancelar operaciones largas (Ctrl+C ignorado)
- Viola convención Go de propagar context
Sugerencia de solución
Extraer helpers (syncCosts, syncResources, syncCommitments, autoprune). Añadir context.Context a la interfaz Provider.
Detectado por
Calidad Agent
Tipo de problema
Deuda técnica
Descripción
Dos problemas relacionados:
1. runScan demasiado larga
La función tiene 284 líneas y mezcla: validación, setup de DB, iteración de cuentas, fetch de costes, descubrimiento de recursos, commitments, auto-pruning y resumen.
2. Sin propagación de context.Context
Casi todas las funciones de provider y analysis crean
context.Background()internamente. La interfazProviderno aceptacontext.Context.Localización
cmd/scan.go:L49-L333internal/provider/aws/costs.go:L50,discovery.go:L54,organization.go:L20,L67,commitments.go:L16internal/analysis/anomaly.go:L33,compare.go:L34,summary.go:L60,trends.go:L36Impacto
Sugerencia de solución
Extraer helpers (
syncCosts,syncResources,syncCommitments,autoprune). Añadircontext.Contexta la interfazProvider.Detectado por
Calidad Agent