Stellen Sie sicher, dass Sie When to Use Devin und Instructing Devin Effectively für weitere wichtige Tipps lesen.
Hinzufügen eines neuen API-Endpunkts
Gute VorgehensweiseWarum das funktioniert:
Schlechte VorgehensweiseWarum das fehlschlägt:
“Erstelle einen neuen Endpunkt
/users/stats, der ein JSON-Objekt mit der Anzahl der Benutzer und dem durchschnittlichen Registrierungsalter zurückgibt. Verwende dazu unsere bestehende users-Tabelle in PostgreSQL. Du kannst den Endpunkt /orders/stats in statsController.js als Vorlage für die Struktur der Responses verwenden. Stelle sicher, dass der neue Endpunkt in der Test-Suite StatsController.test.js abgedeckt ist.”- Gibt Route und erwartetes Antwortformat klar an
- Verweist auf bestehenden Code als Vorlage
- Definiert die Datenquelle (
users-Tabelle) - Enthält Anforderungen an die Testabdeckung
Schlechte VorgehensweiseWarum das fehlschlägt:
- Unspezifisch, welche Statistiken enthalten sein sollen
- Keine Erwähnung von Datenquellen
- Kein Verweis auf bestehende Muster/Konventionen
- Fehlende Testanforderungen
Frontend-Feature zur Datenanzeige
Gute VorgehensweiseWarum das funktioniert:
Schlechte VorgehensweiseWarum das fehlschlägt:
“Füge in
UserProfileComponent ein Dropdown hinzu, das eine Liste von Benutzerrollen (admin, editor, viewer) anzeigt. Verwende das Styling von DropdownBase. Wenn eine Rolle ausgewählt wird, rufe die bestehende API auf, um die Benutzerrolle zu setzen. Überprüfe, ob die Auswahl die Benutzerrolle in der DB aktualisiert. Sieh in deinem Knowledge nach, wie du das korrekt testest.”- Benennt konkrete Komponenten
- Listet die exakten Rollen auf, die enthalten sein sollen
- Verweist auf eine bestehende Styling-Komponente
- Definiert den Ablauf der Benutzerinteraktion
- Enthält Validierungsschritte
Schlechte VorgehensweiseWarum das fehlschlägt:
- „Benutzerfreundlich“ ist subjektiv
- Keine spezifischen UI-Komponenten erwähnt
- Unklarer Ablauf der Benutzerinteraktion
- Vage Validierungskriterien
Weitere Beispiele
Gut
Schreiben von Unit-Tests
“Füge Jest-Tests für die AuthService-Methoden
login und logout hinzu. Stelle sicher, dass die Testabdeckung für diese beiden Funktionen mindestens 80 % beträgt. Verwende UserService.test.js als Beispiel. Führe nach der Implementierung npm test -- --coverage aus und überprüfe, dass der Coverage-Bericht >80 % für beide Funktionen anzeigt. Bestätige außerdem, dass die Tests sowohl mit gültigen als auch mit ungültigen Anmeldedaten erfolgreich sind und dass logout die Sitzungsdaten ordnungsgemäß löscht.”UserService.test.js), und ein klar abgegrenzter Umfang mit konkreten Überprüfungsschritten.Migration oder Refactoring von bestehendem Code
“Migriere
logger.js von JavaScript zu TypeScript. Wir haben bereits eine tsconfig.json und eine Test-Suite LoggerTest.test.js zur Validierung. Stelle sicher, dass der Code ohne Fehler kompiliert, und ändere auf keinen Fall die bestehende Konfiguration! Überprüfe die Migration anschließend, indem du: 1) tsc ausführst, um sicherzustellen, dass keine Typfehler auftreten, 2) die Test-Suite mit npm test LoggerTest.test.js ausführst, um sicherzustellen, dass alle Tests erfolgreich sind, und 3) kontrollierst, dass alle bestehenden Logger-Methodenaufrufe in der gesamten Codebasis weiterhin ohne Typfehler funktionieren.”tsconfig.json) und eine Test-Suite für direktes Feedback, plus konkrete Schritte für Kompilierung und Validierung.Aktualisieren von APIs oder Datenbankabfragen
“Wir wechseln von
pg zu sequelize (siehe https://sequelize.org/api/v6/identifiers). Bitte aktualisiere die UserModel-Abfragen so, dass sie Sequelize-Methoden verwenden. Sieh dir dafür OrderModel an, um zu verstehen, wie wir das in dieser Codebasis handhaben. Überprüfe nach der Implementierung, indem du: 1) npm run test:integration UserModel.test.js ausführst, um sicherzustellen, dass alle Integrationstests erfolgreich sind, 2) bestätigst, dass sich die Abfrageperformance nicht verschlechtert hat, indem du die Ausführungszeit auf einem Testdatensatz mit 1000 Usern prüfst, und 3) validierst, dass alle CRUD-Operationen weiterhin die Datenintegrität sicherstellen, indem du npm run test:e2e user-flows.test.js ausführst.”OrderModel.js). Es wird ein Link zur Dokumentation bereitgestellt, damit Devin weiß, dass er diese heranziehen soll, und es sind konkrete Schritte zur Überprüfung von Performance und Funktionalität mit exakten Testbefehlen enthalten.Schlecht
Unstrukturierte Code-Reviews
Warum schlecht? Die Anfrage ist zu vage und verlangt, dass Devin zu viele Aufgaben in einer einzigen Sitzung erledigt. Devin kann in langen Sitzungen durcheinanderkommen.
Visuelle Designaufgaben
Warum schlecht? Dies ist eine subjektive visuelle Anfrage. Devin kann nicht „sehen“ wie Menschen und wird die Details nicht perfekt treffen. Devin ist nicht für solche Anwendungsfälle optimiert.
Hochkomplexe, vage Projekte
Warum schlecht? Dies ist eine sehr große und unstrukturierte Aufgabe. Sie erfordert Architekturentscheidungen und Abwägungen.Teile stattdessen komplexe Projekte in Phasen auf:
- Lass Devin deine Codebasis untersuchen
- Bitte Devin, konkrete Architekturen vorzuschlagen
- Erstelle separate Sitzungen für die Implementierung der einzelnen Teile
