Estimado candidato:
Tu tarea es refactorizar un controlador de API REST en Laravel 10 que actualmente contiene métodos para crear, mostrar, editar, actualizar y eliminar registros de la entidad "Lead". El controlador proporcionado tiene problemas de diseño y no sigue las mejores prácticas de codificación. Se espera que implementes principios de "Clean Code" y patrones SOLID en tu solución.
- create: para crear un nuevo lead.
- show: para mostrar los detalles de un lead existente.
- edit: para editar un lead existente.
- update: para actualizar un lead existente.
- destroy: para eliminar un lead existente.
Además, el controlador interactúa con un servicio de scoring, que determina la calidad del lead.
Tu objetivo es revisar el código proporcionado y realizar las acciones necesarias para mejorar su calidad. Algunas áreas a tener en cuenta son:
- Aplicar principios SOLID y "Clean Code".
- Evaluar el manejo de respuestas y códigos HTTP.
- Mejorar la legibilidad y mantenibilidad del código.
- Considerar la separación de responsabilidades y la estructura del código.
- Manejar adecuadamente los errores.
- Realizar los tests necesarios.
Por favor, envía un repositorio de Git con tu solución, que debe incluir:
- Código fuente.
- Pruebas automatizadas.
- Instrucciones para instalar y correr tu proyecto localmente.
- Un archivo README que explique tu enfoque, decisiones de diseño y cómo correr las pruebas.
Nos interesa no solo que el código funcione, sino también tu enfoque para resolver problemas y la calidad de tu código.
Buena suerte y esperamos ver tu solución.