#168 · Herramienta para desarrolladores

Go Inspector

Inspecciona un archivo Go para resumir señales de complejidad y mantenimiento: cuenta funciones, tipos, goroutines, defer, panic, FIXME y algunos imports sensibles como unsafe. También calcula una estimación simple de puntos de decisión para orientar una revisión. El resultado sirve como tablero de diagnóstico textual, no como sustituto de go vet, staticcheck ni perfiles de ejecución.

Datos de entrada

Código Go
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega el archivo Go.
  2. Ejecuta la inspección.
  3. Revisa primero las señales de riesgo.
  4. Usa el resto de métricas para orientar la revisión del archivo.

Qué hace esta herramienta para desarrolladores

Resume patrones textuales que suelen ser relevantes en mantenimiento, concurrencia y control de flujo.

Cuenta construcciones fuera de cadenas y comentarios y destaca panic, FIXME y unsafe como señales prioritarias.

Los conteos no indican por sí solos que exista un defecto.

Ejemplo

go work() · defer cleanup() · panic("x")
→ goroutines: 1, defer: 1, panic: 1

Casos de uso

  • Preparar revisiones de código.
  • Detectar archivos con concurrencia o panic.
  • Comparar complejidad aproximada entre snippets.

Consejos para obtener resultados fiables

  • Investiga cada uso de unsafe.
  • Comprueba que goroutines tengan ciclo de vida controlado.
  • No trates la métrica de decisiones como complejidad ciclomática exacta.
  • Complementa con staticcheck y pruebas.

Detalles del procesamiento

El inspector evita contar tokens dentro de cadenas y comentarios cuando analiza construcciones de Go.

No realiza análisis de flujo, data races, escapes, tipos ni dependencias entre paquetes.

Preguntas frecuentes

¿Qué señales de riesgo destaca el Go Inspector?

Cuenta panic, FIXME y uso de unsafe, además de goroutines, defer y puntos de decisión aproximados.

¿La cifra de decisiones es complejidad ciclomática real?

No. Es una aproximación basada en palabras clave de control de flujo.

¿Puede detectar data races?

No. No ejecuta el programa ni analiza sincronización entre goroutines.

¿Un uso de unsafe implica un error?

No necesariamente, pero merece una revisión explícita de invariantes y límites de memoria.

¿Qué herramientas complementan este inspector?

go vet, staticcheck, pruebas, race detector y perfiles de ejecución aportan análisis mucho más profundo.

Resumen del módulo

MóduloQué revisa o produce
EntradaCódigo Go
ProcesamientoCuenta construcciones fuera de cadenas y comentarios y destaca panic, FIXME y unsafe como señales prioritarias.
SalidaInforme de inspección

Explora más herramientas de lenguajes de programación

Consulta validadores, generadores, parsers y utilidades relacionadas en el hub de esta categoría.

Ver programming-language-tools