Asegúrate de leer Cuándo usar Devin e Instrucciones efectivas para Devin para más consejos esenciales.
Agregar un nuevo endpoint de API
Enfoque correctoPor qué funciona:
Enfoque incorrectoPor qué falla:
“Crea un nuevo endpoint
/users/stats que devuelva un objeto JSON con el número de usuarios y la edad promedio al registrarse. Usa nuestra tabla existente users en PostgreSQL. Puedes usar el endpoint /orders/stats en statsController.js como referencia para la estructura de las respuestas. Asegúrate de que el nuevo endpoint esté cubierto por la suite StatsController.test.js.”- Especifica claramente la ruta y el formato de respuesta esperado
- Hace referencia a código existente como plantilla
- Define la fuente de datos (tabla de usuarios)
- Incluye requisitos de cobertura de pruebas
Enfoque incorrectoPor qué falla:
- No especifica qué estadísticas incluir
- No menciona las fuentes de datos
- No hace referencia a patrones existentes
- No indica requisitos de pruebas
Funcionalidad de frontend para mostrar datos
Enfoque correctoPor qué funciona:
Enfoque incorrectoPor qué falla:
“En
UserProfileComponent, agrega un menú desplegable que muestre una lista de roles de usuario (admin, editor, viewer). Usa los estilos de DropdownBase. Cuando se seleccione un rol, llama a la API existente para establecer el rol del usuario. Valida comprobando que la selección actualice el rol del usuario en la base de datos. Consulta tu Knowledge para saber cómo probarlo correctamente.”- Nombra componentes específicos
- Enumera exactamente los roles que se deben incluir
- Hace referencia a un componente de estilos existente
- Define el flujo de interacción del usuario
- Incluye pasos de validación
Enfoque incorrectoPor qué falla:
- “Fácil de usar” es subjetivo
- No se mencionan componentes específicos de UI
- El flujo de interacción del usuario no está claro
- Los criterios de validación son vagos
Más ejemplos
Bueno
Escribir pruebas unitarias
“Agrega pruebas de Jest para los métodos de AuthService: login y logout. Asegúrate de que la cobertura de pruebas para estas dos funciones sea de al menos el 80 %. Usa
UserService.test.js como ejemplo. Después de la implementación, ejecuta npm test -- --coverage y verifica que el informe de cobertura muestre >80 % para ambas funciones. Confirma también que las pruebas pasen tanto con credenciales válidas como inválidas, y que logout borre correctamente los datos de sesión.”UserService.test.js) y un alcance bien definido con pasos específicos de verificación.Migrar o refactorizar código existente
“Migra
logger.js de JavaScript a TypeScript. Ya tenemos un tsconfig.json y una suite de pruebas LoggerTest.test.js para validación. Asegúrate de que compile sin errores y no cambies la configuración existente. Después de la migración, verifica: 1) ejecutando tsc para confirmar que no hay errores de tipo, 2) ejecutando la suite de pruebas con npm test LoggerTest.test.js para asegurar que todas las pruebas pasen, y 3) comprobando que todas las llamadas existentes a los métodos del logger en todo el código base sigan funcionando sin errores de tipo.”tsconfig.json) y una suite de pruebas para feedback inmediato, además de pasos específicos de compilación y validación.Actualizar APIs o consultas de base de datos
“Estamos pasando de pg a sequelize (consulta https://sequelize.org/api/v6/identifiers). Actualiza las consultas de UserModel para usar métodos de Sequelize. Consulta
OrderModel para ver cómo lo hacemos en este código base. Después de la implementación, verifica: 1) ejecutando npm run test:integration UserModel.test.js para comprobar que todas las pruebas de integración pasen, 2) confirmando que el rendimiento de las consultas no se haya degradado revisando el tiempo de ejecución en un conjunto de datos de prueba de 1000 usuarios, y 3) validando que todas las operaciones CRUD sigan manteniendo la integridad de los datos ejecutando npm run test:e2e user-flows.test.js.”OrderModel.js). Se proporciona un enlace a la documentación para que Devin sepa que debe consultarla, e incluye pasos específicos de verificación de rendimiento y funcionalidad con comandos de prueba exactos.Malos ejemplos
Revisión de código abierta
¿Por qué es malo? La solicitud es demasiado vaga y le pide a Devin que complete demasiadas tareas en una sola sesión. Devin puede confundirse en sesiones largas.
Tareas de diseño visual
¿Por qué es malo? Este es un encargo visual subjetivo. Devin no puede “ver” como lo hacen los humanos y no captará los detalles a la perfección. No está optimizado para estos casos de uso.
Proyectos muy complejos y vagos
¿Por qué es malo? Esta es una tarea muy grande y no estructurada. Requiere decisiones de arquitectura y compromisos.En su lugar, divide los proyectos complejos en fases:
- Haz que Devin analice tu base de código
- Pídele a Devin que proponga arquitecturas específicas
- Crea sesiones separadas para implementar cada parte
