Skip to content

Herramientas Visuales

Sistema de debug visual integrado para desarrollo rápido — el "rayos X" que muestra cómo funciona todo internamente.

Debug System

El Sistema de Debug ofrece visibilidad completa de lo que sucede durante el renderizado:

🔧 Qué Muestra:

InformaciónDónde ApareceCuándo Se ActualizaÚtil Para
Estado del FormularioPanel de DebugEn cada cambioVer valores en tiempo real
Schema AplicadoInspector de SchemaCuando cambia el schemaValidar estructura
Resolución de ComponenteÁrbol de ComponentesEn cada renderizadoDebug de conflictos de registro
Pipeline de MiddlewareTracer de PipelinePor ejecuciónAjuste de rendimiento
Métricas de RendimientoMonitor de RendimientoContinuamenteOptimización

📊 Activación Automática:

Modo Desarrollo:

text
NODE_ENV=development → Panel de Debug activo automáticamente

Override Manual:

text
REACT_APP_DEBUG_schepta=true → Forzar debug en producción

Toggle en Runtime:

javascript
window.schepta_DEBUG = true; // Activar debug vía consola

💡 Resultado: Transparencia completa del sistema. ¡Debug visual sin configuración!

🚀 Componentes del Sistema de Debug

Cada herramienta tiene una función específica:

📊 Debug Panel - Panel Principal:

SecciónContenidoActualizaciónInteracción
Valores del FormularioValores actuales de camposTiempo realVista de solo lectura
Estado de ValidaciónErrores, touched, dirtyEn validaciónClick para ver detalles
Árbol de SchemaEstructura del schemaAl cambiar schemaÁrbol expandible
Mapa de ComponentesComponentes resueltosEn renderizadoClick para inspeccionar
RendimientoTiempo de renderizadoContinuamenteHover para detalles

🔍 Schema Inspector - Análisis de Schema:

CaracterísticaVisualizaciónPropósitoNavegación
Árbol de SchemaVista jerárquicaVer estructura completaExpandir/colapsar
Detalles de PropiedadPares clave-valorVer propiedadesClick para detalles
Reglas de ValidaciónLista de reglasVer reglas aplicadasHover para descripción
Mapeo de ComponentesSchema → ComponenteVer resoluciónClick para componente

🎛️ Component Tree - Visor de Jerarquía:

InformaciónVisualizaciónPropósitoAcciones
Nombre de ComponenteNodo del árbolIdentificar tipo de componenteClick para inspeccionar
PropsObjeto expandibleVer props actualesEditar en devtools
Fuente de RegistroBadgeVer de dónde vino el componenteTrazar resolución
Contador de RenderizadoContadorMonitoreo de rendimientoReiniciar contador

⚡ Performance Monitor - Métricas en Tiempo Real:

MétricaMediciónUmbralAlerta
Tiempo de RenderizadoMilisegundos por renderizado> 16msAdvertencia de rendimiento
Contador de Re-renderizadoContador por interacción> 5Optimización necesaria
Procesamiento de SchemaTiempo para procesar schema> 50msAdvertencia de schema complejo
Uso de MemoriaMemoria de componente> 10MBAdvertencia de fuga de memoria

⚙️ Arquitectura de Debug

Cómo funciona el sistema de debug internamente:

📋 Pipeline de Debug:

EtapaProcesoDatos ColectadosAlmacenamiento
1. Instalación de HooksInstalar hooks de debugCiclo de vida del componenteContexto de debug
2. Recolección de DatosRecolectar datos de renderizadoProps, estado, tiempoBuffer circular
3. ProcesamientoProcesar datos recolectadosMétricas, relacionesEstado computado
4. VisualizaciónActualizar UI de debugSnapshot actualEstado React/Vue
5. InteracciónManejar interacción del usuarioSelecciones del usuarioEstado local

🎯 Estrategia de Recolección de Datos:

Seguimiento de Renderizado:

typescript
const debugData = {
  timestamp: Date.now(),
  component: componentName,
  props: cloneDeep(props),
  schema: cloneDeep(schema),
  renderTime: performance.now() - startTime,
  memoryUsage: getMemoryUsage()
};

Seguimiento de Pipeline:

typescript
const pipelineTrace = {
  middlewareName: middleware.name,
  inputProps: cloneDeep(inputProps),
  outputProps: cloneDeep(outputProps),
  executionTime: executionEnd - executionStart,
  errors: capturedErrors
};

Seguimiento de Rendimiento:

typescript
const performanceMetrics = {
  renderCount: renderCount,
  totalRenderTime: totalTime,
  averageRenderTime: totalTime / renderCount,
  memoryDelta: currentMemory - previousMemory
};

📊 Características de Debug

Funcionalidades específicas para cada tipo de problema:

🔧 Características de Debug de Formulario:

CaracterísticaPropósitoDatos MostradosAcciones Disponibles
Value InspectorVer valores actualesEstado del formulario en tiempo realCopiar valores
Validation TracerDebug de validaciónReglas + resultadosProbar validación
Field MapperSchema a componenteMapeo de camposInspeccionar componente
Submit TracerDebug de envío de formularioFlujo de datos de envíoSimular envío

🧭 Características de Debug de Menú:

CaracterísticaPropósitoDatos MostradosAcciones Disponibles
Navigation TreeEstructura de menúMenú jerárquicoExpandir/colapsar
Visibility LogicDebug mostrar/ocultarExpresiones de visibilidadProbar condiciones
Route MappingMenú a rutasMapeos de URLNavegar directamente
Permission CheckDebug de permisosLógica de permisosProbar con roles

🎨 Características de Debug de Componente:

CaracterísticaPropósitoDatos MostradosAcciones Disponibles
Registry InspectorDebug de resolución de componentesCadena de resoluciónOverride de componentes
Props TracerDebug de flujo de propsPipeline de middlewareProbar transformaciones
Context ViewerDebug de contextoValores de contextoModificar contexto
Render ProfilerDebug de rendimientoMétricas de renderizadoPerfilar renderizados

💡 Conceptos Relacionados

El Sistema de Debug es "observabilidad" para todos los demás conceptos: