Skip to content

Evaluación del recorrido cotidiano ​

Índice · Inicio rápido · Convenciones

La evaluación compara tareas de código antes y después de la simplificación. No es un estudio con usuarios ni una medida de tiempo de aprendizaje. Los recuentos describen ejemplos concretos; no demuestran por sí solos que una API resulte intuitiva.

Decisiones implementadas ​

Se eligió FieldSequence frente a otro modificador sobre el builder del campo porque su alcance aparece en el nombre y permite un solo callback. No se añadió un segundo sinónimo.

Los mensajes predeterminados se incorporaron como sobrecargas sin mensaje. Esto conserva la distinción entre omitir un mensaje y proporcionar uno inválido, sin introducir configuración global.

La lectura de dominio se colocó junto a EntityValidator, para que el import del caso cotidiano también permita GetDiagnostics y ForField. Los accesos avanzados al árbol permanecen disponibles.

Se reutilizaron las fábricas de error existentes y se añadió ToResult. La mejora es de anidamiento y composición de la expresión, no una eliminación de la decisión sobre la categoría del error.

Seis tareas de comparación ​

TareaAntesDespuésQué queda por aprender
Presencia y formatoDos callbacks (Field y Sequence), dos mensajes obligatoriosUn callback (FieldSequence), mensajes opcionalesPresencia frente a formato
Consulta dependienteCallback de campo y callback de secuenciaMustAsync dentro del mismo callbackToken, contexto y ValidateAsync
Mostrar erroresComprobar fallo y entrar por Error.GetDomainDiagnostics()result.GetDiagnostics()Vacío significa ausencia de diagnósticos
Reutilizar en dominioWithRules(plan)Se conserva esa misma llamadaElegir cuándo se necesita dominio
Rechazo de negocioResult.Fail(new BusinessError(code, message))BusinessError.Create(code, message).ToResult()Categoría y código público
Personalizar reglaMensaje obligatorio desde el inicioMensaje explícito solo donde hace faltaLocalización y códigos estables

Criterios técnicos ​

  • Equivalencia de FieldSequence con la composición explícita para entradas ausentes, formato inválido y consultas fallidas.
  • No ejecución de consultas cuando falla un prerrequisito.
  • Acumulación de errores entre campos independientes.
  • Cancelación después de una hoja asíncrona sin ejecutar la siguiente.
  • Mensajes y códigos de reglas predeterminadas, y conservación del código al personalizar solo el texto.
  • Lectura de diagnósticos vacía en éxito, rutas inferidas y vistas conservadas en fallo.
  • Rechazo de argumentos inválidos incluso cuando el resultado es satisfactorio.
  • Conversión de errores sin perder identidad, categoría ni razones.
  • Compilación y ejecución del inicio rápido completo.

Estos criterios están cubiertos por los contratos de plataforma, dominio y resultados del repositorio. Las convenciones anteriores permanecen disponibles y sus contratos se vuelven a ejecutar.

Límites y evaluación con lectores ​

La diferencia entre ValidationReport y Result<T> continúa existiendo. Tampoco se ha unificado artificialmente la semántica histórica de todos los builders ni se han reorganizado ensamblados.

Una futura revisión con lectores puede usar las seis tareas de la tabla: entregar el inicio rápido, permitir solo la documentación y registrar dudas, elecciones incorrectas y cambios necesarios. No se afirma que esa revisión humana ya se haya realizado.

Uso personal limitado. Uso comercial sujeto a autorización escrita.