Skip to main content

Überprüfen von KI-generierten Code

Hier lernen Sie Techniken, um KI-generierten Code zu überprüfen und zu validieren, und wie Copilot-Chat dabei helfen kann.

Das Überprüfen von Code, der von KI-Tools wie GitHub Copilot, ChatGPT oder anderen Codierungs-Agents generiert wird, wird zu einem wesentlichen Bestandteil des modernen Entwicklerworkflows. Dieser Leitfaden bietet praktische Techniken, betont die Bedeutung der menschlichen Aufsicht und tests und enthält Beispielaufforderungen, um zu zeigen, wie KI beim Überprüfungsprozess unterstützt werden kann.

Sowohl für legacy-Codebases als auch für größere Pullanforderungen ist ein gründlicher Überprüfungsprozess wichtig. Durch die Kombination von menschlichem Know-how mit automatisierten Tools kann sichergestellt werden, dass KI-generierter Code Qualitätsstandards erfüllt, sich an den Projektzielen orientiert und bewährte Methoden befolgt.

Mit Copilot können Sie Ihren Prüfprozess rationalisieren und Ihre Fähigkeit verbessern, potenzielle Probleme in durch KI generiertem Code zu identifizieren.

1. Beginnen Sie mit funktionalen Prüfungen

Führen Sie zuerst automatisierte Tests und statische Analysetools aus.

Beispiele für Prompts

  • What functional tests to validate this code change do not exist or are missing?
  • What possible vulnerabilities or security issues could this code introduce?

2. Überprüfen des Kontexts und der Absicht

Überprüfen Sie, ob der von KI generierte Code dem Zweck und der Architektur Ihres Projekts entspricht.

  • Überprüfen Sie die KI-Ausgabe auf Übereinstimmung mit Ihren Anforderungen und Entwurfsmustern.
  • Fragen Sie sich: "Löst dieser Code das richtige Problem? Folgt es unseren Konventionen?"
  • Verwenden Sie Ihre README-, Dokument- und aktuellen Pullanforderungen als Ausgangspunkt für Kontext für KI. Teilen Sie KI mit, welche Quellen vertrauen sollen, was nicht verwendet werden soll, und geben Sie ihm gute Beispiele für die Arbeit.
  • Probieren Sie Synthetisieren der Forschung aus, um zu sehen, wie Copilot Dokumentation und Forschung nutzt, um die Codeerstellung zu unterstützen.
  • Wenn KI aufgefordert wird, Forschungs- und Planungsaufgaben auszuführen, sollten Sie die KI-Ausgabe in strukturierte Artefakte destillieren, die dann als Kontext für zukünftige KI-Aufgaben wie die Codegenerierung dienen.

Beispiele für Prompts

  • How does this refactored code section align with our project architecture?
  • What similar features or established design patterns did you identify and model your code after?
  • When examining this code, what assumptions about business logic, design preferences, or user behaviors have been made?
  • What are the potential issues or limitations with this approach?

3. Bewerten der Codequalität

Menschliche Standards sind nach wie vor wichtig.

  • Suchen Sie nach Lesbarkeit, Wartungsbarkeit und eindeutiger Benennung.
  • Vermeiden Sie das Akzeptieren von Code, der schwer zu befolgen ist, oder dauert es länger, umzugestalten als neu zu schreiben.
  • Bevorzugen Sie Code, der gut dokumentiert ist und klare Kommentare enthält.
  • Überprüfen Sie Verbessern der Lesbarkeit und Wartbarkeit von Code auf Eingabeaufforderungen und Hinweise zum Überprüfen und Umgestalten des generierten Codes.

Beispiele für Prompts

  • What are some readability and maintainability issues in this code?
  • How can this code be improved for clarity and simplicity? Suggest an alternative structure or variable names to enhance clarity.
  • How could this code be broken down into smaller, testable units?

4. Überprüfen von Abhängigkeiten

Seien Sie vorsichtig mit neuen Paketen und Bibliotheken.

  • Überprüfen Sie, ob vorgeschlagene Abhängigkeiten vorhanden sind und aktiv verwaltet werden. Berücksichtigen Sie die Ursprünge und Mitwirkenden neuer Abhängigkeiten, um sicherzustellen, dass sie aus seriösen, nicht konkurrierenden Quellen stammen.
  • Überprüfen Sie die Lizenzierung. Vermeiden Sie die Einführung von Code oder Abhängigkeiten, die nicht mit der Lizenz Ihres Projekts kompatibel sind (z. B. AGPL-3.0 in einem MIT-lizenzierten Projekt oder Abhängigkeiten ohne deklarierte Lizenz).
  • Achten Sie auf halluzinierte oder verdächtige Pakete (wie z. B. Pakete, die in Wirklichkeit nicht existieren) oder auf Slopsquatting (einen theoretischen Angriff auf LLMs mittels gefälschter oder bösartiger Pakete).
  •         [AUTOTITLE](/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-templates) veranschaulicht, wie Copilot bei der Einrichtung von Abhängigkeiten helfen können. Es empfiehlt sich jedoch, die vorgeschlagenen Pakete immer selbst zu überprüfen.
    
  • Verwenden Sie GitHub Copilot-Codeverweise , um Übereinstimmungen mit öffentlich verfügbaren Code zu überprüfen.

Beispiele für Prompts

  • Analyze the attached package.json file and list all dependencies with their respective licenses.
  • Are each of the dependencies listed in this package.json file actively maintained (that is, not archived and have recent maintainer activity)?

5. KI-spezifische Fallstricke erkennen

KI-Tools können eindeutige Fehler machen.

  • Suchen Sie nach halluzinierten APIs, ignorierten Einschränkungen oder einer falschen Logik.
  • Achten Sie auf Tests, die gelöscht oder übersprungen wurden, anstatt behoben zu werden.
  • Seien Sie skepsis gegenüber Code, der "richtig aussieht", aber nicht mit Ihrer Absicht übereinstimmt.
  • Sehen Sie sich AUTOTITLE als Beispiel an, um subtile Fehler zu erfassen und mit Copilot zu debuggen.

Beispiele für Prompts

  • What was the reasoning behind the code change to delete the failing test? Suggest some alternatives that would fix the test instead of deleting it.
  • What potential complexities, edge cases, or scenarios are there that this code might not handle correctly?
  • What specific technical questions does this code raise that require human judgment or domain expertise to evaluate properly?

6. Gemeinsame Rezensionen verwenden

Kopplungen und Teameingaben helfen, subtile Probleme zu erfassen.

  • Bitten Sie Teamkollegen, komplexe oder vertrauliche Änderungen zu überprüfen.
  • Verwenden Sie Checklisten, um sicherzustellen, dass alle wichtigen Überprüfungspunkte (Funktionalität, Sicherheit, Wartung) abgedeckt werden.
  • Teilen Sie erfolgreiche Eingabeaufforderungen und Muster für die KI-Nutzung in Ihrem Team.
  • Unter Effektives Kommunizieren finden Sie Beispiele, wie Sie mit Copilot zusammenarbeiten und Ihre Ergebnisse dokumentieren können.

7. Automatisieren Sie, was Sie können

Lassen Sie Tools die sich wiederholende Arbeit verarbeiten.

  • Richten Sie CI-Prüfungen auf Stil, Linting und Sicherheit ein.
  • Verwenden Sie Dependabot für Abhängigkeitsupdates und Benachrichtigungen.
  • Wenden Sie CodeQL oder ähnliche Scanner für die statische Analyse an.
  •         [AUTOTITLE](/copilot/how-tos/get-code-suggestions/find-matching-code) zeigt, wie Copilot beim Aufspüren von Codemustern helfen und Suchaufgaben automatisieren kann.
    
  • Überlegen Sie, ob KI-Agents mit Denkfunktionen bei der Automatisierung von Teilen Ihres Überprüfungsprozesses helfen können. Erstellen Sie beispielsweise einen selbstüberprüfenden Agenten, der Entwurf von Pull-Requests gemäß Ihren Standards auf Genauigkeit, den passenden Ton und die Geschäftslogik vor dem Anfordern einer menschlichen Überprüfung bewertet.

8. Verbessern Sie Ihren Workflow weiter

Durch die Einführung neuer KI-Tools und -Techniken kann Ihr Workflow noch effektiver werden.

  • Dokumentieren Sie Ihre bewährten Methoden zum Überprüfen von KI-generierten Code.
  • Ermutigen Sie "KI-Experten" in Ihrem Team, Tipps und Workflows zu teilen.
  • Aktualisieren Sie Ihre Onboarding- und Beitragsleitfäden, um Ihre KI-Überprüfungstechniken und Ressourcen einzuschließen. Verwenden Sie eine CONTRIBUTING.md Datei in Ihrem Repository, um Ihre Erwartungen an KI-generierten Quellcode und Inhalte zu dokumentieren, siehe Richtlinien für Repository-Mitarbeiter festlegen.
  • Referenzieren Sie GitHub Copilot Chat Cookbook für Inspiration und teilen Sie nützliche Rezepte in Ihren Teamdokumenten.

Weiterführende Lektüre

  •         [Menschliche Aufsicht bei der modernen Code-Überprüfung](https://resources.github.com/enterprise/human-oversight-modern-code-review/) in den Ressourcen von GitHub