Opret effektive prompter til GitHub Copilot

Fuldført

En prompt er en naturlig sproginstruktion, der fortæller GitHub Copilot, hvad du vil have den til at gøre. Prompter kan bruges til at stille spørgsmål, kommunikere anmodninger eller beskrive opgaver.

Følgende prompter repræsenterer f.eks. et spørgsmål, en anmodning og en opgavebeskrivelse.

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.

Kvaliteten af din prompt påvirker direkte kvaliteten af GitHub Copilots svar.

Hvad gør en god prompt?

Det er vigtigt at oprette prompter af høj kvalitet for at få mest muligt ud af GitHub Copilot. Følgende strategier hjælper dig med at lave prompter, der genererer mere præcise, relevante og nyttige svar.

Start generelt, og hent derefter specifikke

Når du skriver en prompt til Copilot, skal du begynde med en bred beskrivelse af dit mål eller scenarie og derefter angive specifikke krav. Denne tilgang giver Copilot den nødvendige kontekst, samtidig med at den sikrer, at dine detaljerede behov bliver adresseret.

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.

Giv konkrete eksempler

Eksempler er en af de mest effektive måder at kommunikere din hensigt til Copilot på. Du kan angive eksempler på inputdata, forventede output og endda eksempler på implementeringer for at guide AI'ens forståelse.

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"]

Opdel komplekse opgaver i enklere trin

Når du står over for en kompleks eller stor opgave, skal du nedbryde den i mindre, håndterbare komponenter. Denne tilgang fører til bedre resultater og gør det nemmere at fejlfinde og forfine individuelle dele.

Eksempel: I stedet for at bede Copilot om at generere et komplet ordsøgningspuslespil, skal du bryde det ned:

  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

Fjern tvetydighed

Undgå vage referencer og tvetydige termer, der kan fortolkes på flere måder. Vær eksplicit omkring, hvad du henviser til, og hvad du vil have Copilot til at gøre.

Dårlige eksempler:

  • "Hvad gør det?" (uklart, hvad "dette" refererer til).
  • "Ret fejlen" (angiver ikke, hvilken fejl eller hvordan den rettes).

Bedre eksempler:

  • "Hvad gør createUser-funktionen?"
  • "Hvad gør koden i dit sidste svar?"
  • "Ret valideringsfejlen i e-mail-indtastningsfeltet."

Bibliotekets overvejelser:

  • Hvis du bruger et usædvanligt bibliotek, skal du beskrive dets formål.
  • For bestemte biblioteker skal du medtage importsætninger eller angive, hvilket bibliotek du vil bruge.

Giv relevant kontekst

Hjælp Copilot med at forstå din projektstruktur og dine intentioner ved at administrere dit udviklingsmiljø effektivt.

I din IDE:

  • Åbn relevante filer og luk ikke-relaterede filer.
  • Fremhæv specifikke kodeafsnit, som du ønsker, at Copilot skal referere til.
  • Brug chatdeltagere som @workspace i Visual Studio Code eller @project i JetBrains IDE'er.

I Copilot-chat:

  • Henvis til specifikke filer eller kodeblokke.
  • Vedhæft relevant dokumentation eller specifikationer.
  • Brug tydelige filstier og funktionsnavne.

Gentage og afgrænse

Forvent ikke perfekte resultater i første forsøg. Copilot fungerer bedst, når du deltager i en iterativ samtale og forfiner dine anmodninger baseret på de svar, du modtager.

Strategier for iteration:

  • Hvis du bruger indbyggede forslag, skal du slette og prøve igen med en ændret prompt.
  • I Copilot Chat skal du henvise til tidligere svar og bede om specifikke ændringer.
  • Byg videre på delvise løsninger ved at bede om trinvise forbedringer.

Vedligehold relevant samtalehistorik

Copilot Chat bruger samtalehistorik til at forstå kontekst, så administrer denne historik strategisk.

Anbefalede fremgangsmåder:

  • Start nye tråde til forskellige opgaver eller projekter.
  • Slet irrelevante eller mislykkede anmodninger, der kan forvirre fremtidige svar.
  • Hold samtaler fokuseret på relateret funktionalitet.

Følg gode kodningspraksisser

Kvaliteten af din eksisterende kodebase påvirker Copilots evne til at generere passende forslag. Oprethold høje standarder i din kode for at få bedre AI-assistance.

Faktorer for kodekvalitet:

  • Brug ensartet kodestil og -mønstre.
  • Vælg beskrivende navne til variabler og funktioner.
  • Tilføj meningsfulde kommentarer for at forklare kompleks logik.
  • Strukturer kode i modulære, velafgrænsede komponenter.
  • Medtag omfattende enhedstest.

Note

Du kan bede Copilot om at hjælpe med at forbedre din kodekvalitet ved at anmode om kommentarer, refaktorere forslag eller opdele store funktioner i mindre, mere håndterbare stykker.

Gode opfordringer er:

  • Klar: Beskriv præcis, hvad du ønsker.
  • Specifik: Medtag oplysninger om layout, funktionsmåde eller formatering.
  • Kontekstafhængig: Henvis til eksisterende kode eller struktur.

Gentagelse af prompter

Hvis GitHub Copilots første svar ikke stemmer overens med dine forventninger, skal du muligvis gentage din prompt. Overvej disse strategier:

  • Rediger prompten for at være mere specifik.
  • Tilføj kontekst til chatten, der tydeliggør dine mål eller krav.
  • Brug Copilot Chat til at stille opfølgende spørgsmål, der bygger på tidligere svar.

Evaluering og reaktion på Copilots forslag

At forstå, hvordan man vurderer Copilots forslag, er afgørende for effektiv vibe-kodning. Ikke alle forslag vil være perfekte, og at vide, hvornår du skal acceptere, afvise eller ændre svar, vil forbedre din udviklingsoplevelse betydeligt.

Hvornår skal du acceptere forslag?

Accepter Copilots forslag, når de:

  • Opfyld dine krav: Koden gør præcis, hvad du bad om.
  • Følg bedste fremgangsmåder: Bruger passende mønstre, navngivningskonventioner og struktur.
  • Er velstrukturerede: Koden kan læses, vedligeholdes og formateres korrekt.
  • Inkluder korrekt fejlhåndtering: Edge-tilfælde og potentielle fejl løses.
  • Match dit projekts stil: I overensstemmelse med eksisterende kodebasemønstre og -konventioner.

Eksempel på et godt forslag til at acceptere:

Lynhurtig: "Opret en funktion til at validere e-mailadresser"

Copilot foreslår:

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());
}

Dette forslag bør accepteres, fordi det inkluderer inputvalidering, fejlhåndtering og bruger et rimeligt regex-mønster.

Hvornår skal man afvise forslag?

Afvis Copilots forslag, når de:

  • Besvar ikke din prompt: Koden løser et andet problem end anmodet om.
  • Indeholder sikkerhedssårbarheder: Brug usikre fremgangsmåder, eller eksponer følsomme data.
  • Er alt for komplekse: Simple opgaver implementeres med unødvendig kompleksitet.
  • Brug udfasede metoder: Stol på forældede eller forældede API'er.
  • Manglende fejlhåndtering: Tag ikke højde for potentielle fejlscenarier.
  • Overtræd kodningsstandarder: Følg ikke dit teams etablerede praksis.

Eksempel på et forslag om at afvise:

Lynhurtig: "Opret en sikker adgangskodevalideringsfunktion"

Dårligt forslag:

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

Dette bør afvises, fordi det er for forenklet til sikkerhedskrav og ikke validerer adgangskodens styrke korrekt.

Hvornår skal du ændre forslag?

Rediger Copilots forslag, når de:

  • Er for det meste korrekte, men har brug for justeringer: Kernelogik er sund, men detaljer skal justeres.
  • Har brug for yderligere funktioner: Basisfunktionaliteten er god, men kræver forbedringer.
  • Har du mindre problemer med typografien: Koden fungerer, men matcher ikke dine formateringsindstillinger.
  • Kræv forskellige variabelnavne: Logikken er korrekt, men navngivningen kan forbedres.
  • Har brug for optimering af ydeevnen: Funktionel, men kunne være mere effektiv.

Eksempel på et forslag til ændring:

Copilot foreslår:

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

Din ændring for bedre læsbarhed og moderne JavaScript:

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

Strategier til forbedring af forslag

Hvis et forslag ikke er helt rigtigt, kan du prøve disse fremgangsmåder:

Afgræns din prompt:

  • Tilføj mere specifikke krav.
  • Medtag eksempler på forventet input/output.
  • Angiv den programmeringsstil eller -ramme, du bruger.

Anmod om ændringer:

  • "Gør den forrige funktion mere robust med fejlhåndtering."
  • "Gør den kode, du lige har skrevet, enklere."
  • "Føj TypeScript-typer til den forrige funktion."

Byg trinvist:

  • Start med en grundlæggende version og bed om forbedringer.
  • Tilføj funktioner én ad gangen i stedet for at anmode om alt på én gang.
  • Test hver gentagelse, før du går videre til den næste forbedring.

Tip

Når du ændrer forslag, skal du beholde de dele, der fungerer godt, og være specifik omkring, hvad der skal ændres. Dette hjælper Copilot med at forstå dine præferencer og give bedre fremtidige forslag.

Summary

Det er vigtigt at skabe effektive prompter til GitHub Copilot for at maksimere dets potentiale inden for vibe-kodning. Ved at starte med generelle beskrivelser, give konkrete eksempler, nedbryde komplekse opgaver og opretholde klar kommunikation kan du guide Copilot til at generere kode af høj kvalitet, der opfylder dine behov. At gentage prompter og forstå, hvordan du evaluerer forslag, vil forbedre din udviklingsoplevelse yderligere, så du kan udnytte AI-assistance effektivt, samtidig med at du bevarer kontrollen over kodningsprocessen.