Creați solicitări eficiente pentru GitHub Copilot

Finalizat

O solicitare este o instrucțiune în limbaj natural care îi spune GitHub Copilot ce doriți să facă. Solicitările pot fi folosite pentru a pune întrebări, a comunica solicitări sau a descrie sarcini.

De exemplu, următoarele solicitări reprezintă o întrebare, o solicitare și o descriere a sarcinii.

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.

Calitatea solicitării afectează direct calitatea răspunsului GitHub Copilot.

Ce face un prompt bun?

Crearea de solicitări de înaltă calitate este esențială pentru a obține cea mai mare valoare de la GitHub Copilot. Următoarele strategii vă vor ajuta să creați solicitări care generează răspunsuri mai precise, relevante și utile.

Începeți general, apoi fiți specific

Când scrieți o solicitare pentru Copilot, începeți cu o descriere amplă a obiectivului sau scenariului dvs., apoi furnizați cerințe specifice. Această abordare oferă Copilot contextul necesar, asigurându-se în același timp că nevoile dumneavoastră detaliate sunt abordate.

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.

Oferiți exemple concrete

Exemplele sunt una dintre cele mai eficiente modalități de a vă comunica intenția către Copilot. Puteți furniza exemple de date de intrare, rezultate așteptate și chiar exemple de implementări pentru a ghida înțelegerea AI.

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

Împărțiți sarcinile complexe în pași mai simpli

Când vă confruntați cu o sarcină complexă sau mare, descompuneți-o în componente mai mici, ușor de gestionat. Această abordare duce la rezultate mai bune și facilitează depanarea și rafinarea pieselor individuale.

Exemplu: În loc să cereți Copilot să genereze un puzzle complet de căutare de cuvinte, descompuneți-l:

  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

Eliminați ambiguitatea

Evitați referințele vagi și termenii ambigui care ar putea fi interpretați în mai multe moduri. Fii explicit cu privire la ceea ce te referi și la ce vrei să facă Copilot.

Exemple slabe:

  • "Ce face asta?" (nu este clar la ce se referă "asta").
  • "Remediați eroarea" (nu specifică ce eroare sau cum să o remediați).

Exemple mai bune:

  • "Ce face funcția createUser?"
  • "Ce face codul din ultimul tău răspuns?"
  • "Remediați eroarea de validare în câmpul de introducere a e-mailului."

Considerații despre bibliotecă:

  • Dacă utilizați o bibliotecă neobișnuită, descrieți scopul acesteia.
  • Pentru anumite biblioteci, includeți instrucțiuni de import sau specificați ce bibliotecă doriți să utilizați.

Oferiți un context relevant

Ajutați Copilot să înțeleagă structura și intențiile proiectului prin gestionarea eficientă a mediului de dezvoltare.

În IDE-ul dvs.:

  • Deschideți fișierele relevante și închideți-le pe cele fără legătură.
  • Evidențiați anumite secțiuni de cod la care doriți să facă referire Copilot.
  • Utilizați participanții la chat, cum ar fi @workspace în Visual Studio Code sau @project în IDE-urile JetBrains.

În chatul Copilot:

  • Faceți referire la anumite fișiere sau blocuri de cod.
  • Atașați documentația sau specificațiile relevante.
  • Utilizați căi clare de fișiere și nume de funcții.

Iterați și rafinați

Nu vă așteptați la rezultate perfecte din prima încercare. Copilot funcționează cel mai bine atunci când vă angajați într-o conversație iterativă, rafinându-vă solicitările pe baza răspunsurilor pe care le primiți.

Strategii pentru iterație:

  • Dacă utilizați sugestii în linie, ștergeți și încercați din nou cu o solicitare modificată.
  • În Copilot Chat, faceți referire la răspunsurile anterioare și cereți modificări specifice.
  • Construiți pe soluții parțiale cerând îmbunătățiri incrementale.

Păstrați istoricul conversațiilor relevante

Copilot Chat folosește istoricul conversațiilor pentru a înțelege contextul, așa că gestionați acest istoric strategic.

Cele mai bune practici:

  • Începeți fire noi pentru diferite sarcini sau proiecte.
  • Ștergeți cererile irelevante sau nereușite care ar putea confunda răspunsurile viitoare.
  • Păstrați conversațiile concentrate pe funcționalitatea asociată.

Urmați bunele practici de codare

Calitatea bazei de cod existente afectează capacitatea Copilot de a genera sugestii adecvate. Mențineți standarde ridicate în codul dvs. pentru a obține o asistență AI mai bună.

Factori de calitate a codului:

  • Utilizați stiluri și modele de cod consecvente.
  • Alegeți nume descriptive pentru variabile și funcții.
  • Adăugați comentarii semnificative pentru a explica logica complexă.
  • Structurați codul în componente modulare, bine definite.
  • Includeți teste unitare cuprinzătoare.

Note

Puteți cere Copilot să vă ajute să vă îmbunătățiți calitatea codului solicitând comentarii, sugestii de refactorizare sau împărțind funcțiile mari în bucăți mai mici și mai ușor de gestionat.

Solicitările bune sunt:

  • Clar: descrieți exact ceea ce doriți.
  • Specific: Includeți detalii de aspect, comportament sau stil.
  • Contextual: Faceți referire la codul sau structura existentă.

Iterarea pe solicitări

Dacă răspunsul inițial al GitHub Copilot nu se aliniază cu așteptările dvs., poate fi necesar să iterați solicitarea. Luați în considerare aceste strategii:

  • Editați solicitarea pentru a fi mai specific.
  • Adăugați context chat-ului care vă clarifică obiectivele sau cerințele.
  • Utilizați Copilot Chat pentru a pune întrebări ulterioare care se bazează pe răspunsurile anterioare.

Evaluarea și răspunsul la sugestiile Copilot

Înțelegerea modului de evaluare a sugestiilor Copilot este crucială pentru o codificare eficientă a vibrației. Nu orice sugestie va fi perfectă, iar a ști când să accepți, să respingi sau să modifici răspunsurile îți va îmbunătăți semnificativ experiența de dezvoltare.

Când să acceptați sugestii

Acceptați sugestiile Copilot atunci când:

  • Îndepliniți-vă cerințele: codul face exact ceea ce ați cerut.
  • Urmați cele mai bune practici: utilizează modele, convenții de denumire și structură adecvate.
  • Sunt bine structurate: codul este lizibil și formatat corect.
  • Includeți gestionarea corectă a erorilor: cazurile limită și potențialele defecțiuni sunt abordate.
  • Potriviți stilul proiectului: în concordanță cu modelele și convențiile existente ale bazei de cod.

Exemplu de sugestie bună de a accepta:

Prompt: "Creați o funcție pentru validarea adreselor de e-mail"

Copilot sugerează:

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

Această sugestie ar trebui acceptată deoarece include validarea intrării, gestionarea erorilor și folosește un model regex rezonabil.

Când să respingeți sugestiile

Respingeți sugestiile Copilot atunci când:

  • Nu abordați solicitarea: codul rezolvă o problemă diferită de cea solicitată.
  • Conține vulnerabilități de securitate: folosește practici nesigure sau expune date sensibile.
  • Sunt prea complexe: sarcini simple implementate cu complexitate inutilă.
  • Folosiți metode învechite: bazați-vă pe API-uri învechite sau învechite.
  • Lipsa gestionării erorilor: Nu luați în considerare scenariile potențiale de eșec.
  • Încălcați standardele de codare: Nu respectați practicile stabilite de echipa dvs.

Exemplu de sugestie de respingere:

Prompt: "Creați o funcție securizată de validare a parolei"

Sugestie slabă:

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

Acest lucru ar trebui respins, deoarece este prea simplist pentru cerințele de securitate și nu validează corect puterea parolei.

Când să modificați sugestiile

Modificați sugestiile Copilot atunci când:

  • Sunt în mare parte corecte, dar au nevoie de ajustări: Logica de bază este solidă, dar detaliile trebuie ajustate.
  • Aveți nevoie de caracteristici suplimentare: funcționalitatea de bază este bună, dar necesită îmbunătățiri.
  • Aveți probleme minore de stil: Codul funcționează, dar nu se potrivește preferințelor de formatare.
  • Necesită nume de variabile diferite: Logica este corectă, dar denumirea ar putea fi îmbunătățită.
  • Aveți nevoie de optimizări de performanță: Funcționale, dar ar putea fi mai eficiente.

Exemplu de sugestie de modificare:

Copilot sugerează:

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

Modificarea ta pentru o mai bună lizibilitate și JavaScript modern:

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

Strategii de îmbunătățire a sugestiilor

Când o sugestie nu este chiar corectă, încercați aceste abordări:

Rafinați solicitarea:

  • Adăugați cerințe mai specifice.
  • Includeți exemple de intrări/ieșiri așteptate.
  • Specificați stilul de programare sau cadrul pe care îl utilizați.

Solicitați modificări:

  • "Faceți funcția anterioară mai robustă cu gestionarea erorilor."
  • "Simplifică codul pe care tocmai l-ai scris."
  • "Adăugați tipuri TypeScript la funcția anterioară."

Construiți incremental:

  • Începeți cu o versiune de bază și cereți îmbunătățiri.
  • Adăugați funcții pe rând, în loc să solicitați totul simultan.
  • Testați fiecare iterație înainte de a trece la următoarea îmbunătățire.

Tip

Când modificați sugestiile, păstrați părțile care funcționează bine și fiți specific cu privire la ceea ce trebuie schimbat. Acest lucru ajută Copilot să vă înțeleagă preferințele și să ofere sugestii viitoare mai bune.

Summary

Crearea de solicitări eficiente pentru GitHub Copilot este esențială pentru maximizarea potențialului său în codarea vibe. Începând cu descrieri generale, oferind exemple concrete, defalcând sarcini complexe și menținând o comunicare clară, puteți ghida Copilot să genereze cod de înaltă calitate care să răspundă nevoilor dvs. Iterarea solicitărilor și înțelegerea modului de evaluare a sugestiilor vă va îmbunătăți și mai mult experiența de dezvoltare, permițându-vă să utilizați eficient asistența AI, menținând în același timp controlul asupra procesului de codare.