Identifizieren und Auswerten großer Funktionen mithilfe des Ask-Modus von GitHub Copilot
Die Verwendung des Ask-Modus von GitHub Copilot ist wie ein erfahrener Kollege, der immer verfügbar ist, um Ihre Fragen zu beantworten. GitHub Copilot kann Fragen zu Ihrer Codebasis, Codebibliotheken, bewährten Methoden und Ihrer Entwicklungsumgebung beantworten. Der Fragemodus ändert Ihren Code nicht direkt, bietet jedoch Erläuterungen, Einblicke und Vorschläge, die Sie zum Verbessern ihres Codes verwenden können.
Der Ask-Modus von GitHub Copilot ist nützlich beim Umgang mit großen Funktionen, die komplex und schwer zu verstehen sind. Indem Sie gezielte Fragen stellen, können Sie eine große Funktion in verwaltbare Teile aufteilen, Verbesserungsbereiche identifizieren und Ihre Codeumgestaltungsbemühungen effektiv planen.
Allgemeine Anwendungsfälle für gitHub Copilots Ask-Modus
Der Ask-Modus von GitHub Copilot ist über die GitHub Copilot Chat-Erweiterung in Visual Studio Code integriert. Sie können eine Unterhaltung im Modus "Fragen" starten, indem Sie den Chatbereich öffnen und Ihre Fragen in natürlicher Sprache eingeben. Im Folgenden finden Sie einige häufige Anwendungsfälle für den Ask-Modus:
- Erläutern/Zusammenfassen von Code: Generieren Sie eine auf natürliche Sprache basierende Aufschlüsselung der Funktionsweise des Codes. Sie können GitHub Copilot bitten, eine gesamte Codebasis oder eine beliebige Klasse, Methode oder Codeblock zusammenzufassen.
- Identifizieren logischer Abschnitte: Gibt häufig eine nummerierte Liste mit unterschiedlichen Aufgaben oder Schritten zurück, die der Code ausführt.
- Probleme hervorheben: Kann auf Wiederholungen oder Komplexität hinweisen.
- Beantworten Sie bestimmte Fragen: "Was macht diese Schleife?" oder "Warum sind diese Parameter erforderlich?"
- Vorschlagen von Umgestaltungsansätzen: "Sie könnten diese Schritte in separate Funktionen extrahieren..."
Identifizieren und Auswerten großer Funktionen mithilfe des Ask-Modus von GitHub Copilot
Es gibt mehrere Szenarien, in denen der Fragemodus bei der Identifizierung und Analyse großer Funktionen helfen kann:
- Identifizieren potenziell problematischer großer Funktionen: Bitten Sie Copilot, Funktionen zu finden, die einen bestimmten Schwellenwert für die Zeilenanzahl oder Komplexität überschreiten.
- Grundlegendes zur Funktionalität: Fragen Sie, was die Funktion auf hoher Ebene tut.
- Aufschlüsselungslogik: Fordern Sie eine schrittweise Erläuterung der Logik der Funktion an.
- Identifizieren von Problemen: Fragen Sie sich nach potenziellen Problemen oder Codegeruchen.
- Umgestaltungsvorschläge: Suchen Sie nach Ratschlägen, wie Sie die Funktion umgestalten, um eine bessere Lesbarkeit und Verhaltbarkeit zu gewährleisten.
- Erkunden von Alternativen: Bitten Sie um unterschiedliche Möglichkeiten, die gleiche Funktionalität zu implementieren.
- Bewährte Methoden zum Lernen: Fordern Sie bewährte Methoden für die Codierung an, die sich auf den Zweck der Funktion beziehen.
Nachfolgend finden Sie einen allgemeinen Prozess, der GitHub Copilot verwendet, um große Funktionen zu identifizieren und zu analysieren:
Identifizieren problematischer großer Funktionen: Verwenden Sie den Ask-Modus, um Funktionen zu identifizieren, die die angegebenen Schwellenwerte überschreiten.
Überprüfen Sie die Ergebnisse von GitHub Copilot: Analysieren Sie die Liste der identifizierten Funktionen, und priorisieren Sie sie basierend auf Komplexität und Auswirkung. Verwenden Sie Ihr Urteil, um Funktionen auszuwählen, die am meisten von der Umgestaltung profitieren würden.
Auswerten einer bestimmten großen Funktion: Verwenden Sie den Ask-Modus, um die Funktion detailliert zu analysieren.
Stellen Sie eine Frage mithilfe einer Eingabeaufforderung in natürlicher Sprache, z. B.:
- "Analysieren Sie die ausgewählte Funktion, und stellen Sie eine allgemeine Zusammenfassung ihrer Zweck- und Hauptaufgaben bereit. Schließen Sie alle Bedenken hinsichtlich Komplexität oder Verhaltbarkeit ein, die Sie bemerken."
- "Unterteilen Sie die ausgewählte Funktion in ihre unterschiedlichen logischen Aufgaben oder Verantwortlichkeiten. Geben Sie für jeden Vorgang an, welche Codezeilen beteiligt sind und ob jeder Vorgang in eine separate Funktion extrahiert werden kann."
- "Identifizieren Sie spezifische Umgestaltungsmöglichkeiten in der ausgewählten Funktion. Schlagen Sie vor, welche Codeblöcke in separate Methoden extrahiert werden können, welche Methoden benannt werden sollen und welche Parameter sie benötigen würden."
- "Analysieren Sie die zyklomatische Komplexität der ausgewählten Funktion. Identifizieren Sie die Entscheidungspunkte (If-Anweisungen, Schleifen, Switch-Fälle), die zur Komplexität beitragen, und schlagen Sie spezifische Strategien vor, um sie zu reduzieren, wie z. B. Schutzklauseln, frühzeitige Rückgaben oder Strategiemuster.
- "Bewerten Sie die ausgewählte Funktion anhand von SOLID-Prinzipien. Welche Prinzipien werden verletzt und wie?
- "Identifizieren Sie Codegeruche in der ausgewählten Funktion, z. B. lange Parameterlisten, geschachtelte Bedingungen oder wiederholte Codemuster. Geben Sie bestimmte Beispiele an."
- "Vorschlagen Sie einen schrittweisen Umgestaltungsplan für die ausgewählte Funktion, priorisieren Sie die Änderungen, die sich am stärksten auf die Lesbarkeit und Verwendbarkeit auswirken würden."
Überprüfen Sie die Antwort von GitHub Copilot im Chatpanel:
Wenden Sie Ihr Verständnis der Codebasis und anwendbaren Geschäftsregeln an. Verwenden Sie Ihr eigenes Wissen, um die Analyse von GitHub Copilot zu überprüfen.
Suchen Sie nach umsetzbaren Erkenntnissen in der Antwort. Beispielsweise können Sie bestimmte Aufgaben oder Codeabschnitte finden, die in separate Funktionen extrahiert werden können.
Nachfragen stellen:
- "Überprüfen Sie die Fehlerbehandlungsmuster in der ausgewählten Funktion. Gibt es Möglichkeiten, die Fehlerbehandlung zu konsolidieren, Fehlermeldungen zu verbessern oder die Fehlerbehandlung in wiederverwendbare Komponenten zu extrahieren?"
- Bewerten Sie die ausgewählte Funktion anhand des Grundsatzes der einzelnen Verantwortung. Wenn sie mehrere Zuständigkeiten hat, identifizieren Sie jeden einzelnen, und schlagen Sie vor, wie sie in fokussierte, einzelzweckbezogene Funktionen aufgeteilt werden könnten."
- "Überprüfen Sie den vorgeschlagenen Umgestaltungsplan für die ausgewählte Funktion. Gibt es Sicherheits-, Leistungs- oder Wartungsbarkeitsauswirkungen, die ich berücksichtigen muss? Erklären."
Planen Sie Ihr Refactoring:
Verwenden Sie die Erkenntnisse, um eine Umgestaltungsstrategie zu skizzieren.
Entscheiden Sie, welche Teile in separate Funktionen oder Klassen extrahiert werden sollen.
Tipps zur effektiven Verwendung des Ask-Modus
Wenn Sie den Größten Nutzen aus dem Ask-Modus von GitHub Copilot ziehen möchten, sollten Sie sich die folgenden Tipps ansehen:
- Seien Sie spezifisch: Fragen Sie bei Bedarf nach bestimmten Abschnitten.
- Kontext sichtbar halten: Stellen Sie sicher, dass GitHub Copilot die gesamte Funktion "sehen" kann. Fügen Sie bei Bedarf verwandte Dateien zum Chatkontext hinzu.
- Vertrauen Sie Vorschlägen nicht blind: Verwenden Sie Ihr Urteilsvermögen.
- Verwenden Sie die Ausgabe des Ask Mode als Blaupause: Planen Sie Ihre Codeumgestaltung basierend auf der Aufschlüsselung von GitHub Copilot.
Hinweis
Erfahrene Entwickler können den Ask-Modus als zweite Meinung verwenden und ihre eigenen Pläne für die Umgestaltung großer Funktionen überprüfen. Wenn GitHub Copilot die gleichen Funktionen identifiziert, die Sie identifiziert haben, wissen Sie, dass Sie auf dem richtigen Weg sind. Wenn GitHub Copilot eine Umgestaltung anderer Funktionen vorschlägt, können Sie die Erkenntnisse von GitHub Copilot verwenden, um zu bewerten, was Sie verpasst haben.
Zusammenfassung
Der Ask-Modus von GitHub Copilot ist ein leistungsstarkes Tool zum Analysieren und Verstehen großer Funktionen. Indem Sie gezielte Fragen stellen, können Sie komplexen Code aufschlüsseln, Verbesserungsbereiche identifizieren und Ihr Codeumgestaltungsprojekt effektiv planen. Verwenden Sie den Ask-Modus als Planungsassistent, bevor Sie mit der Umgestaltung beginnen, um einen durchdachten Ansatz sicherzustellen.