Esamina le migliori pratiche di GitHub Copilot
Le estensioni GitHub Copilot per Visual Studio Code consentono agli sviluppatori di scrivere codice più velocemente e con un minor numero di errori.
Tuttavia, GitHub Copilot è un programmatore di coppie di intelligenza artificiale, non è un programmatore. Per sfruttare al meglio gli strumenti di GitHub Copilot, è necessario seguire le procedure consigliate.
Scegliere lo strumento di GitHub Copilot appropriato per il processo
Mentre le funzionalità di completamento del codice di GitHub Copilot e le funzionalità di chat di GitHub Copilot condividono alcune funzionalità, i due strumenti vengono usati meglio in circostanze diverse.
I completamenti del codice forniscono il valore massimo quando vengono usati per:
- Completare frammenti di codice, nomi di variabili e funzioni durante la scrittura.
- Generare codice ripetitivo.
- Generare codice da commenti inline in linguaggio naturale.
- Generare test per lo sviluppo basato su test.
In alternativa, le funzionalità di chat di GitHub Copilot offrono il massimo valore quando vengono usate per:
- Rispondere alle domande sul codice in linguaggio naturale.
- Generare sezioni di codice di grandi dimensioni, quindi eseguire l'iterazione su tale codice per soddisfare le proprie esigenze.
- Eseguire attività specifiche con parole chiave e competenze. GitHub Copilot Chat usa parole chiave predefinite (e competenze progettate per fornire contesto importante) all'interno di prompt per eseguire rapidamente attività comuni. Diversi tipi di parole chiave e competenze sono disponibili in diverse piattaforme di chat GitHub Copilot.
- Completare un'attività come persona specifica. Ad esempio, è possibile indicare GitHub Copilot Chat che si tratta di uno sviluppatore C++ senior che si occupa notevolmente della qualità del codice, della leggibilità e dell'efficienza. Dopo aver stabilito l'utente, è possibile chiedere GitHub Copilot di esaminare il codice.
Sfruttare al meglio i suggerimenti inline di GitHub Copilot
L'estensione GitHub Copilot presenta automaticamente suggerimenti che consentono di scrivere codice in modo più efficiente. GitHub Copilot fornisce suggerimenti migliori quando si seguono determinate azioni e comportamenti. Alcune di queste azioni e comportamenti potrebbero essere già state eseguite, poiché consentono anche all'utente e ai colleghi di comprendere il codice.
Specificare il contesto per GitHub Copilot
GitHub Copilot funziona meglio quando ha un contesto sufficiente per sapere cosa si sta facendo e cosa si vuole aiutare con. Proprio come si fornisce a un collega un contesto pertinente quando si richiede assistenza, è necessario fornire GitHub Copilot con il contesto.
Aprire file
Per i completamenti del codice, GitHub Copilot esamina i file aperti nell'editor per stabilire il contesto e creare suggerimenti appropriati. L'apertura di file correlati in Visual Studio Code durante l'uso di GitHub Copilot consente di definire il contesto e di visualizzare GitHub Copilot l'immagine più grande del progetto.
Commento di massimo livello
Proprio come si darebbe una breve introduzione generale a un collega, un commento di primo livello in un file di codice può aiutare GitHub Copilot comprendere il contesto generale del codice che si sta creando.
Inclusioni e riferimenti appropriati
È consigliabile impostare manualmente le inclusioni o i riferimenti ai moduli di cui si ha bisogno per il lavoro. GitHub Copilot può inviare suggerimenti, ma è probabile che si conosca meglio quali dipendenze è necessario includere. Questo può anche informare GitHub Copilot sui framework, le librerie e le relative versioni che si desidera usare durante la creazione di suggerimenti.
Nomi di funzioni significativi
Proprio come un metodo denominato fetchData() non significa molto per un collega (o dopo diversi mesi), fetchData() non aiuterà GitHub Copilot comprendere il codice. L'uso di nomi di funzioni significativi consente di GitHub Copilot generare suggerimenti che eseguono le operazioni desiderate.
Commenti sulle funzioni specifici e con ambiti ben definiti
Il nome della funzione può essere solo molto descrittivo senza essere eccessivamente lungo. I commenti delle funzioni possono essere utili per compilare i dettagli che GitHub Copilot potrebbero dover conoscere.
Prime GitHub Copilot con codice di esempio
Un trucco per ottenere GitHub Copilot nella pagina destra consiste nel copiare e incollare esempi di codice desiderati in una scheda dell'editor aperta. L'esempio deve rappresentare il codice che si vuole emulare GitHub Copilot. Fornire un esempio può aiutare GitHub Copilot a generare suggerimenti che corrispondano al linguaggio e alle attività che si desidera emulare. Dopo che GitHub Copilot ti ha aiutato a creare del codice che corrisponde al tuo obiettivo, puoi eliminare il codice di esempio. Questo approccio è particolarmente utile quando è necessario "addestrare" GitHub Copilot. Supponiamo, ad esempio, che GitHub Copilot, per impostazione predefinita, suggerisca dei frammenti di codice che implementano una versione precedente di una libreria. È possibile inserire il codice nel progetto che usa la versione più recente della libreria. In questo modo GitHub Copilot inizia a suggerire frammenti di codice che utilizzano l'ultima versione della libreria. Dopo che GitHub Copilot ha imparato a usare la nuova versione della libreria, è possibile eliminare il codice di esempio.
Essere coerenti e mantenere standard elevati di qualità
GitHub Copilot si aggancerà al tuo codice per generare suggerimenti che continuano il modello esistente, quindi vale il detto "garbage in, garbage out".
Mantenere sempre uno standard di qualità elevato può richiedere disciplina. Soprattutto quando si codifica in modo rapido per far funzionare qualcosa. Potresti voler disabilitare i completamenti di GitHub Copilot mentre sei in modalità "hacking". È possibile disabilitare temporaneamente i completamenti dal menu di stato GitHub Copilot (accessibile dalla barra di stato di Visual Studio Code).
Sfruttare al meglio GitHub Copilot Chat
Quando si usano le funzionalità di chat di GitHub Copilot, è possibile eseguire diverse operazioni per ottimizzare l'esperienza.
Inizia con una richiesta generica, quindi diventa più specifico
Quando si scrive un prompt per GitHub Copilot, assegna prima a GitHub Copilot una descrizione generale dell'obiettivo o dello scenario. Quindi, elenca gli eventuali requisiti specifici. Prendi in considerazione le richieste seguenti:
- Scrivere una funzione che indica se un numero è primo.
- La funzione deve accettare un numero intero e restituire true se l'intero è un numero primo.
- La funzione deve generare un errore se l'input non è un numero intero positivo.
Fornisci degli esempi
Utilizzare esempi per aiutare GitHub Copilot a comprendere quello che vuoi. Puoi fornire dati di input di esempio, output di esempio e implementazioni di esempio.
Suddividi le attività complesse in attività più semplici
Se si vuole GitHub Copilot completare un'attività complessa o di grandi dimensioni, suddividere l'attività in più attività semplici e piccole. Ad esempio, invece di chiedere GitHub Copilot di generare un puzzle di ricerca di parole, suddividere il processo in attività più piccole e chiedere GitHub Copilot di eseguirle una alla sola:
- Scrivi una funzione per generare una griglia di 10 lettere per 10.
- Scrivi una funzione per trovare tutte le parole in una griglia di lettere in base all’elenco di parole valide fornito.
- Scrivi una funzione che usa le funzioni precedenti per generare una griglia di 10 lettere per 10 contenente almeno 10 parole.
- Aggiorna la funzione precedente per stampare la griglia di lettere e 10 parole casuali dalla griglia.
Evita le ambiguità
Evita i termini ambigui. Ad esempio, non chiedere "cosa fa questo" quando "questo" potrebbe essere il file corrente, l'ultima risposta di GitHub Copilot, o un blocco di codice specifico. Invece di usare termini ambigui, essere specifici: cosa fa la funzione createUser?
Indica il codice pertinente
Se si usa GitHub Copilot Chat nell'IDE, aprire i file o evidenziare il codice a cui si vuole fare riferimento GitHub Copilot. Usa i partecipanti alla chat, i comandi slash e le variabili della chat nelle richieste per definire il contesto. Ad esempio, specificare quali file GitHub Copilot Chat devono fare riferimento.
Usare i partecipanti alla chat, i comandi slash e le variabili della chat
I partecipanti alla chat sono destinati alla raccolta di un contesto aggiuntivo su una codebase, oppure su un dominio o una tecnologia specifica. Quando si specifica il partecipante appropriato, GitHub Copilot Chat può trovare e fornire informazioni migliori da inviare al back-end GitHub Copilot. Ad esempio, usare @workspace quando si pone domande sul progetto aperto o @vscode quando si chiedono domande sulle funzionalità e sulle API di Visual Studio Code.
I comandi Slash consentono a GitHub Copilot Chat di comprendere la tua finalità quando poni una domanda. Stai imparando a conoscere una codebase (/explain), hai bisogno di aiuto per risolvere un problema (/fix) o stai creando casi di test (/tests)? Consentendo GitHub Copilot Chat di sapere cosa si sta tentando di eseguire, può ottimizzare la risposta all'attività e fornire comandi, impostazioni e frammenti di codice utili.
I partecipanti alla chat, ad esempio @workspace o @vscode, possono contribuire a variabili di chat che forniscono un contesto specifico del dominio. È possibile fare riferimento a una variabile di chat nella richiesta di chat usando il # simbolo . È possibile usare le variabili di chat per essere più specifici riguardo al contesto della richiesta.
Ad esempio, la #file variabile di chat consente di fare riferimento a file specifici dall'area di lavoro nella richiesta di chat. Ciò consente di rendere le risposte di GitHub Copilot Chat più pertinenti al codice fornendo contesto sul file con cui si sta lavorando. È possibile porre domande come "Can you suggest improvements to #file:package.json?" o "How do I add an extension in #file:devcontainer.json?". L'uso della variabile #file consente di ottenere risposte più mirate e accurate da GitHub Copilot.
Sperimentare ed eseguire l'iterazione
Se i risultati non sono quelli desiderati, ripeti la richiesta e riprova. Fai riferimento alla risposta precedente nella richiesta successiva. Puoi anche eliminare la risposta precedente e ricominciare.
Mantieni la cronologia pertinente
GitHub Copilot Chat usa la cronologia delle chat per ottenere contesto sulla richiesta. Per assicurarsi che GitHub Copilot usi una cronologia di chat pertinente:
- Usare i thread per avviare una nuova conversazione per una nuova attività.
- Eliminare le richieste non più rilevanti o che non hanno prodotto il risultato desiderato.
Segui le procedure di scrittura del codice consigliate
Se non si ricevono le risposte desiderate quando si chiedono GitHub Copilot suggerimenti, assicurarsi che il codice esistente segua le procedure consigliate ed è facile da leggere. Ad esempio:
- Usare uno stile e modelli di codice coerenti.
- Usare nomi descrittivi per variabili e funzioni.
- Scrivere commenti nel codice.
- Strutturare il codice in componenti modulari con ambito.
- Includere unit test.
Riassunto
GitHub Copilot è uno strumento potente che consente di scrivere codice più velocemente e con un minor numero di errori. Tuttavia, per sfruttare al meglio GitHub Copilot, è necessario seguire le procedure consigliate. Scegliendo lo strumento di GitHub Copilot appropriato per il processo, fornendo contesto e seguendo le procedure di codifica consigliate, è possibile ottimizzare l'esperienza con GitHub Copilot.