Toegepaste GitHub Copilot-technieken
In eerdere lessen hebben we laten zien hoe we Copilot kunnen instellen en hebben we gezegd hoe u sneller kunt werken als ontwikkelaar die begint met het schrijven van code.
In deze les bespreken we hoe Copilot u kan helpen bij bestaande projecten en u kan helpen bij complexere taken.
Geavanceerde taken met GitHub Copilot
Het is gebruikelijk om als technicus met een bestaand project te werken. Bij het herstellen van code of het implementeren van functies moeten we documentatie en tests schrijven en werken met terminalopdrachten. Laten we een aantal manieren doornemen om dit te bereiken met Behulp van GitHub Copilot.
Impliciete prompts
Hoewel u specifiek kunt zijn in prompts voor het verkrijgen van GitHub Copilot-richtlijnen, kunt u profiteren van functies die impliciet een vooraf gemaakte prompt bieden om een goed antwoord te krijgen.
Als u bijvoorbeeld aan een Python-project werkt en u een bestand hebt geopend met de volgende code met daarin een fout:
with open("file.txt", "r") as file:
# Read the file and print the content
contents = file.read
Nadat u de code hebt geselecteerd en Ctrl+i in Windows of Command+i op een Mac hebt gebruikt, kunt u GitHub Copilot vragen om u te helpen de code op te lossen met behulp van de inlinechat en de /fix slash-opdracht.
Als u alleen typt /fix, krijgt u mogelijk een antwoord van GitHub Copilot dat lijkt op deze suggestie: "Om de code te herstellen, voeg ik haakjes toe na file.read om de leesmethode aan te roepen en de typfout in de naam van de methode op te lossen."
Slash-opdrachten kunnen worden gebruikt voor zowel in de inlinechat als de chatinterface. Naast de /fix opdracht zijn hier enkele van de handigste slash-opdrachten die u kunt gebruiken in Copilot-chat:
-
/doc: Voegt opmerkingen toe aan de opgegeven of geselecteerde code. -
/explain: Krijgt uitleg over de code. -
/generate: genereert code om de opgegeven vraag te beantwoorden. -
/help: Krijgt hulp over hoe u Copilot-chat kunt gebruiken. -
/optimize: Analyseert en verbetert de runtime van de geselecteerde code. -
/tests: Maakt eenheidstests voor de geselecteerde code.
Het gebruik van slash-opdrachten maakt eenvoudigere interactie met GitHub Copilot mogelijk en helpt u betere antwoorden te krijgen zonder dat u langere prompts hoeft te schrijven.
Als u functies zoals slash-opdrachten combineert met inlinechat, kunt u de manier kiezen waarop u het beste werkt en de code waaraan u werkt.
Selectieve context
GitHub Copilot kan worden aangepast om suggesties te bieden op basis van de context waaraan u werkt. U kunt gitHub Copilot bijvoorbeeld vragen suggesties te geven op basis van de volledige werkruimte of de terminaluitvoer.
GitHub Copilot kan u een nauwkeurige suggestie geven voor uw project zonder dat u veel bestanden hoeft te openen. Stel dat u uw project moet verpakken met behulp van een Dockerfile. Een Dockerfile is een speciaal bestand dat specifieke instructies moet hebben om uw project te verpakken. U kunt de @workspace agent gebruiken om GitHub Copilot te vragen hoe u dit kunt doen. Open bijvoorbeeld GitHub Copilot Chat en typ de volgende opdracht:
@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?
U krijgt een antwoord met uitleg over de stappen voor het maken van een Dockerfile voor uw project, samen met een aantal uitleg over wat de stappen van het bestand gaan doen.
Zoals altijd, als de suggesties niet precies zijn wat u zoekt, kunt u de prompt opnieuw formuleren en specifieker zijn. U kunt gitHub Copilot bijvoorbeeld vragen een specifieke stap te gebruiken bij het maken van het Dockerfile:
@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.
Naast de @workspace agent kunt u andere agents gebruiken, zoals @terminal, @fileen @directory om contextspecifieke suggesties te krijgen:
-
@terminal: Biedt suggesties op basis van de terminaluitvoer.- Voorbeeld: @terminal Hoe kan ik het foutbericht dat ik zie oplossen?
-
@file: Richt zich op de inhoud van een specifiek bestand.- Voorbeeld: @file Kunt u me helpen bij het herstructureren van deze functie in main.py?
-
@directory: Houdt rekening met de inhoud van een specifieke map.- Voorbeeld: @directory Hoe kan ik de scripts in de map met hulpprogramma's optimaliseren?
Als u vastloopt of de gewenste resultaten niet krijgt, kunt u de prompt opnieuwworden of beginnen met het schrijven van code voor Copilot om automatisch te worden aangevuld.
Notitie
Hoewel u specifiek kunt zijn, @workspacegebruikt GitHub Copilot standaard geopende bestanden in uw teksteditor als extra context.