Home Projects Portfolio Dashboard Export PDF Log in

Robusteciendo la generación de CVs en devlog-ist/landing: manejo de fallos y contexto

En el proyecto devlog-ist/landing, hemos trabajado recientemente en la mejora de la estabilidad y fiabilidad de nuestro endpoint de generación de CVs (/portfolio/generate-cv). El objetivo principal ha sido eliminar errores inesperados (HTTP 500) causados por dependencias inconsistentes en la entrada de datos y asegurar que la extracción del contexto laboral sea resiliente.

Desafíos en la extracción de contexto

Anteriormente, el controlador de CV dependía de parámetros de entrada directos que fueron eliminados, lo que provocaba errores de tipo al intentar procesar valores nulos. Para solucionar esto, hemos unificado la lógica de extracción de contexto, delegando la responsabilidad a un servicio compartido que ya se utiliza en nuestros paneles de administración de Filament.

Implementación defensiva

Para evitar que un fallo en el proveedor de datos bloquee la generación del documento, hemos implementado bloques try/catch con respaldos seguros. Esto garantiza que, incluso ante problemas inesperados, el proceso pueda continuar de manera controlada.

public function generate(Request $request): JsonResponse
{
    try {
        $context = $this->jobContextService->extract($request->all());
    } catch (ContextExtractionException $e) {
        $this->logger->error('Fallo al extraer contexto', ['error' => $e->getMessage()]);
        $context = $this->getDefaultContext();
    }

    return response()->json($this->cvGenerator->build($context));
}

Mejoras en calidad y pruebas

Además de la lógica de recuperación, hemos fortalecido la capa de pruebas utilizando PHPUnit. Ahora, los tests de unidad incluyen el uso de stubs para simular la extracción de datos, permitiéndonos validar escenarios de éxito, normalización de idiomas y comportamientos ante fallos de manera aislada. Estas medidas aseguran que nuestro flujo de trabajo sea robusto y cumpla con los estándares de calidad esperados.

Robusteciendo la generación de CVs en devlog-ist/landing: manejo de fallos y contexto
Gerardo Ruiz

Gerardo Ruiz

Author

Share: