Fortaleciendo la generación de perfiles profesionales en devlog-ist/landing
En el proyecto devlog-ist/landing, nos hemos enfocado en mejorar la robustez de nuestro motor de generación de perfiles (CV). Recientemente, realizamos una serie de ajustes técnicos cruciales para asegurar la integridad de los datos y la fiabilidad de nuestros prompts dinámicos.
Corrección de Enums y Tipado
Uno de los cambios principales fue la corrección de los valores en el enum WorkModality. Detectamos una inversión en las definiciones de los casos, lo cual afectaba la consistencia lógica del sistema. Además, hemos reforzado el tipado mediante la implementación de comprobaciones instanceof para evitar problemas con operadores de coalescencia nula en tipos complejos, alineándonos con las reglas estrictas de PHPStan.
Refactorización del Contexto de Job
Para evitar errores en la generación de prompts, consolidamos el objeto JobContext. Ahora, el servicio asegura que variables críticas como $jobDescription y $roleName estén correctamente asignadas antes de procesar la solicitud. Aquí un ejemplo de cómo estructuramos ahora la extracción de datos:
public function extractJobContext(array $data): JobContext
{
try {
return new JobContext(
roleName: $data['role'] ?? 'General',
jobDescription: $data['description'] ?? '',
modality: WorkModality::from($data['modality'])
);
} catch (ValueError $e) {
return JobContext::fallback();
}
}
Pruebas Automatizadas
Con el objetivo de garantizar la calidad, actualizamos la suite de pruebas CvGenerationServiceTest. Ahora cubrimos:
- La validación del esquema de extracción de datos.
- La integridad de los valores del enum tras la corrección.
- El manejo de respuestas inválidas mediante el uso de valores por defecto (fallback).
- La seguridad contra la inyección de prompts mediante el contexto del puesto.
Estos cambios, validados con las mejores prácticas de php-cs-fixer, aseguran que nuestra herramienta de generación de perfiles sea mucho más estable y predecible.