Effectieve prompts voor GitHub Copilot maken

Voltooid

Een prompt is een instructie in natuurlijke taal die GitHub Copilot vertelt wat u wilt doen. Prompts kunnen worden gebruikt om vragen te stellen, aanvragen te communiceren of taken te beschrijven.

De volgende prompts vertegenwoordigen bijvoorbeeld een vraag, een aanvraag en een taakbeschrijving.

Question: How do I create a button that submits a form?

Request: Add a button that opens a modal dialog. The button should be blue with rounded corners.

Task: Build a product page that displays a product title, product image, product description, and price. Product information should be fetched from the attached ProductsList.json file. The price should be formatted as currency. The page should also include a button to add the product to the cart.

De kwaliteit van uw prompt is rechtstreeks van invloed op de kwaliteit van het antwoord van GitHub Copilot.

Wat is een goede prompt?

Het maken van prompts van hoge kwaliteit is essentieel voor het verkrijgen van de meeste waarde van GitHub Copilot. De volgende strategieën helpen u bij het maken van prompts die nauwkeurigere, relevante en nuttige antwoorden genereren.

Start algemeen en haal vervolgens specifiek op

Wanneer u een prompt voor Copilot schrijft, begint u met een brede beschrijving van uw doel of scenario en geeft u vervolgens specifieke vereisten op. Deze aanpak biedt Copilot de benodigde context, terwijl u ervoor zorgt dat aan uw gedetailleerde behoeften wordt voldaan.

Example:

Write a function that tells me if a number is prime.

The function should take an integer and return true if the integer is prime.

The function should error if the input is not a positive integer.

Geef concrete voorbeelden

Voorbeelden zijn een van de meest effectieve manieren om uw intentie met Copilot te communiceren. U kunt voorbeeldinvoergegevens, verwachte uitvoer en zelfs voorbeeld-implementaties opgeven om het begrip van ai te begeleiden.

Example:

Write a function that finds all dates in a string and returns them in an array. Dates can be formatted like:

- 05/02/24
- 05/02/2024
- 5/2/24
- 5/2/2024
- 05-02-24
- 05-02-2024
- 5-2-24
- 5-2-2024

Example usage:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")

Expected return: ["11/14/2023", "12-1-23"]

Complexe taken opsplitsen in eenvoudigere stappen

Wanneer u een complexe of grote taak ziet, kunt u deze opdelen in kleinere, beheerbare onderdelen. Deze aanpak leidt tot betere resultaten en maakt het eenvoudiger om fouten op te sporen en afzonderlijke onderdelen te verfijnen.

Voorbeeld: In plaats van Copilot te vragen om een volledige woordzoekopdracht te genereren, moet u het opsplitsen:

  1. Write a function to generate a 10 by 10 grid of letters
  2. Write a function to find all words in a grid of letters, given a list of valid words
  3. Write a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 words
  4. Update the previous function to print the grid and 10 random words from the grid

Dubbelzinnigheid voorkomen

Vermijd vage verwijzingen en dubbelzinnige termen die op meerdere manieren kunnen worden geïnterpreteerd. Wees expliciet over wat u verwijst en wat Copilot moet doen.

Slechte voorbeelden:

  • Wat doet dit? (onduidelijk wat "dit" verwijst).
  • 'Los de fout op' (geeft niet op welke fout of hoe u dit kunt oplossen).

Betere voorbeelden:

  • "Wat doet de functie createUser?"
  • "Wat doet de code in uw laatste antwoord?"
  • 'Corrik de validatiefout in het invoerveld voor e-mail'.

Overwegingen voor bibliotheken:

  • Als u een ongebruikelijke bibliotheek gebruikt, beschrijft u het doel ervan.
  • Neem voor specifieke bibliotheken importinstructies op of geef op welke bibliotheek u wilt gebruiken.

Relevante context opgeven

Help Copilot inzicht te krijgen in uw projectstructuur en intenties door uw ontwikkelomgeving effectief te beheren.

In uw IDE:

  • Open relevante bestanden en sluit niet-gerelateerde bestanden.
  • Markeer specifieke codesecties waarnaar Copilot moet verwijzen.
  • Gebruik chatdeelnemers, zoals @workspace in Visual Studio Code of @project in JetBrains IDE's.

In Copilot Chat:

  • Verwijzen naar specifieke bestanden of codeblokken.
  • Voeg relevante documentatie of specificaties toe.
  • Gebruik duidelijke bestandspaden en functienamen.

Herhalen en verfijnen

Verwacht geen perfecte resultaten tijdens de eerste poging. Copilot werkt het beste wanneer u deelneemt aan een iteratief gesprek, waarbij uw aanvragen worden verfijnd op basis van de antwoorden die u ontvangt.

Strategieën voor iteratie:

  • Als u inlinesuggesties gebruikt, verwijdert u deze en probeert u het opnieuw met een gewijzigde prompt.
  • Verwijs in Copilot Chat naar eerdere antwoorden en vraag om specifieke wijzigingen.
  • Bouw voort op gedeeltelijke oplossingen door te vragen om incrementele verbeteringen.

Relevante gespreksgeschiedenis onderhouden

Copilot Chat gebruikt gespreksgeschiedenis om context te begrijpen, dus beheer deze geschiedenis strategisch.

Beste praktijken:

  • Start nieuwe threads voor verschillende taken of projecten.
  • Verwijder irrelevante of mislukte aanvragen die toekomstige antwoorden mogelijk verwarren.
  • Houd gesprekken gericht op gerelateerde functionaliteit.

Volg goede coderingsprocedures

De kwaliteit van uw bestaande codebase is van invloed op de mogelijkheid van Copilot om passende suggesties te genereren. Behoud hoge standaarden in uw code om betere AI-hulp te krijgen.

Kwaliteitsfactoren voor code:

  • Gebruik consistente codestijl en -patronen.
  • Kies beschrijvende namen voor variabelen en functies.
  • Voeg zinvolle opmerkingen toe om complexe logica uit te leggen.
  • Code structureren in modulaire, goed afgebakende onderdelen.
  • Neem uitgebreide eenheidstests op.

Note

U kunt Copilot vragen om de kwaliteit van uw code te verbeteren door opmerkingen aan te vragen, suggesties te herstructureren of grote functies te splitsen in kleinere, beter beheerbare onderdelen.

Goede aanwijzingen zijn:

  • Duidelijk: Beschrijf precies wat u wilt.
  • Specifiek: Indeling, gedrag of stijldetails opnemen.
  • Contextueel: Verwijzen naar bestaande code of structuur.

Herhalen bij prompts

Als het eerste antwoord van GitHub Copilot niet overeenkomt met uw verwachtingen, moet u mogelijk uw prompt herhalen. Houd rekening met deze strategieën:

  • Bewerk de prompt om specifieker te zijn.
  • Voeg context toe aan de chat waarmee uw doelen of vereisten worden verduidelijkt.
  • Gebruik Copilot Chat om vervolgvragen te stellen die zijn gebaseerd op eerdere antwoorden.

De suggesties van Copilot evalueren en erop reageren

Het is van cruciaal belang om de suggesties van Copilot te beoordelen voor effectieve vibecodering. Niet elke suggestie zal perfect zijn en weten wanneer u reacties accepteert, afwijst of wijzigt, zal uw ontwikkelervaring aanzienlijk verbeteren.

Wanneer suggesties accepteren

Accepteer de suggesties van Copilot wanneer ze:

  • Voldoen aan uw vereisten: De code doet precies wat u hebt gevraagd.
  • Volg de aanbevolen procedures: gebruikt de juiste patronen, naamconventies en structuur.
  • Goed gestructureerd: code kan worden gelezen, onderhouden en correct zijn opgemaakt.
  • Neem de juiste foutafhandeling op: Randgevallen en mogelijke fouten worden aangepakt.
  • Overeenkomen met de stijl van uw project: consistent met bestaande codebasepatronen en conventies.

Voorbeeld van een goede suggestie om te accepteren:

Prompt: "Een functie maken om e-mailadressen te valideren"

Copilot stelt voor:

function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (typeof email !== 'string') {
        throw new Error('Email must be a string');
    }
    return emailRegex.test(email.toLowerCase());
}

Deze suggestie moet worden geaccepteerd omdat deze invoervalidatie, foutafhandeling en een redelijk regex-patroon bevat.

Wanneer suggesties negeren

De suggesties van Copilot afwijzen wanneer ze:

  • Adresseer uw prompt niet: de code lost een ander probleem op dan aangevraagd.
  • Beveiligingsproblemen bevatten: onveilige procedures gebruiken of gevoelige gegevens beschikbaar maken.
  • Zijn te complex: eenvoudige taken geïmplementeerd met onnodige complexiteit.
  • Afgeschafte methoden gebruiken: Afhankelijk van verouderde api's.
  • Foutafhandeling ontbreekt: houd geen rekening met mogelijke foutscenario's.
  • Codestandaarden schenden: volg de vastgestelde procedures van uw team niet.

Voorbeeld van een suggestie om af te wijzen:

Prompt: "Een beveiligde wachtwoordvalidatiefunctie maken"

Slechte suggestie:

function validatePassword(password) {
    return password.length > 6;
}

Dit moet worden geweigerd omdat het te simplistisch is voor beveiligingsvereisten en de wachtwoordsterkte niet goed valideert.

Wanneer suggesties wijzigen

De suggesties van Copilot wijzigen wanneer ze:

  • Zijn meestal juist, maar hebben aanpassingen nodig: kernlogica is degelijk, maar details moeten worden aangepast.
  • Aanvullende functies nodig: basisfunctionaliteit is goed, maar vereist verbeteringen.
  • Er zijn kleine stijlproblemen: Code werkt, maar komt niet overeen met uw opmaakvoorkeuren.
  • Verschillende namen van variabelen vereisen: logica is juist, maar naamgeving kan worden verbeterd.
  • Prestatieoptimalisaties nodig: Functioneel, maar kan efficiënter zijn.

Voorbeeld van een suggestie om te wijzigen:

Copilot stelt voor:

function calculateTotal(items) {
    let total = 0;
    for (let i = 0; i < items.length; i++) {
        total += items[i].price;
    }
    return total;
}

Uw aanpassing voor betere leesbaarheid en moderne JavaScript:

function calculateTotal(items) {
    return items.reduce((total, item) => total + item.price, 0);
}

Strategieën voor het verbeteren van suggesties

Als een suggestie niet helemaal juist is, kunt u de volgende methoden proberen:

Verfijn uw prompt:

  • Voeg specifiekere vereisten toe.
  • Voorbeelden van verwachte invoer/uitvoer opnemen.
  • Geef de programmeerstijl of het framework op dat u gebruikt.

Wijzigingen aanvragen:

  • "Maak de vorige functie robuuster met foutafhandeling."
  • "Vereenvoudig de code die u zojuist hebt geschreven."
  • 'TypeScript-typen toevoegen aan de vorige functie'.

Incrementeel bouwen:

  • Begin met een basisversie en vraag om verbeteringen.
  • Voeg functies één voor één toe in plaats van alles tegelijk aan te vragen.
  • Test elke iteratie voordat u naar de volgende uitbreiding gaat.

Tip

Houd bij het wijzigen van suggesties de onderdelen die goed werken en wees specifiek over wat er moet veranderen. Dit helpt Copilot uw voorkeuren te begrijpen en betere toekomstige suggesties te bieden.

Summary

Het maken van effectieve prompts voor GitHub Copilot is essentieel voor het maximaliseren van het potentieel in vibe coding. Door te beginnen met algemene beschrijvingen, het bieden van concrete voorbeelden, het opsplitsen van complexe taken en het onderhouden van duidelijke communicatie, kunt u Copilot begeleiden bij het genereren van hoogwaardige code die aan uw behoeften voldoet. Het herhalen van prompts en het begrijpen van het evalueren van suggesties zal uw ontwikkelervaring verder verbeteren, zodat u effectief AI-hulp kunt gebruiken terwijl u de controle over het coderingsproces behoudt.