Tecniche di GitHub Copilot applicate

Completato

Nelle unità precedenti è stato illustrato come configurare Copilot e come questo strumento può migliorare la velocità di uno sviluppatore che inizia a scrivere codice.

In questa unità verrà illustrato in che modo Copilot può essere utile per i progetti esistenti e per semplificare le attività più complesse.

Attività avanzate con GitHub Copilot

È comune lavorare con un progetto esistente come tecnico. Quando si corregge il codice o si implementano funzionalità è necessario scrivere documentazione e test e usare i comandi del terminale. Verranno ora illustrati alcuni modi per eseguire questa operazione usando GitHub Copilot.

Richieste implicite

Sebbene sia possibile essere specifici nelle richieste di ottenere indicazioni su GitHub Copilot, è possibile sfruttare le funzionalità che forniscono in modo implicito una richiesta predefinita per ottenere una buona risposta.

Ad esempio, se si sta lavorando a un progetto Python e si dispone di un file aperto con il codice seguente che contiene un bug:

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

Dopo aver selezionato il codice e aver usato Ctrl+i in Windows o Cmd+I in un Mac, è possibile chiedere a GitHub Copilot di risolvere il codice usando la chat inline e il comando barra/fix.

Se si digita /fixsolo , è possibile ottenere una risposta da GitHub Copilot simile a questo suggerimento: "Per correggere il codice, aggiungerei parentesi dopo file.read per chiamare il metodo di lettura e correggere l'errore di digitazione nel nome del metodo".

I comandi Slash possono essere usati sia nella chat inline che nell'interfaccia di chat. Oltre al /fix comando, ecco alcuni dei comandi di barra più utili che è possibile usare nella chat di Copilot:

  • /doc: aggiunge commenti al codice specificato o selezionato.
  • /explain: ottiene spiegazioni sul codice.
  • /generate: genera il codice per rispondere alla domanda specificata.
  • /help: ottiene informazioni su come usare la chat di Copilot.
  • /optimize: analizza e migliora il runtime del codice selezionato.
  • /tests: crea unit test per il codice selezionato.

L'uso dei comandi slash consente di semplificare l'interazione con GitHub Copilot e di ottenere risposte migliori senza dover scrivere prompt più lunghi.

La combinazione di funzionalità come i comandi slash con chat inline consente di scegliere il modo migliore per l’utente e il codice su cui si sta lavorando.

Contesto selettivo

GitHub Copilot può essere personalizzato per fornire suggerimenti in base al contesto su cui si sta lavorando. Ad esempio, è possibile chiedere a GitHub Copilot di fornire suggerimenti in base all'intera area di lavoro o all'output del terminale.

GitHub Copilot può fornire un suggerimento accurato per il progetto senza dover aprire molti file. Si supponga di dover creare un pacchetto del progetto usando un Dockerfile. Un Dockerfile è un file speciale che deve avere istruzioni specifiche per creare un pacchetto del progetto. È possibile usare l'agente @workspace per chiedere a GitHub Copilot come aiutarti. Ad esempio, aprire GitHub Copilot Chat e digitare il comando seguente:

@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?

Si otterrà una risposta che illustra i passaggi per creare un Dockerfile per il progetto insieme ad alcune spiegazioni sui passaggi del file da eseguire.

Come sempre, se i suggerimenti non sono esattamente ciò che si sta cercando, è possibile riformulare il prompt ed essere più specifici. Ad esempio, è possibile chiedere a GitHub Copilot di usare un passaggio specifico durante la creazione del Dockerfile:

@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

Oltre all'agente, è possibile usare altri agenti come @workspace, @terminale @file per ottenere suggerimenti specifici del @directory contesto:

  • @terminal: fornisce suggerimenti basati sull'output del terminale.
    • Esempio: @terminal come è possibile correggere il messaggio di errore visualizzato?
  • @file: si concentra sul contenuto di un file specifico.
    • Esempio: @file puoi aiutarmi a refactorizzare questa funzione in main.py?
  • @directory: considera il contenuto di una directory specifica.
    • Esempio: @directory Come è possibile ottimizzare gli script nella directory utils?

Se si è bloccati o non si ottengono i risultati desiderati, è possibile riformulare la richiesta o iniziare a scrivere codice per il completamento automatico di Copilot.

Nota

Sebbene sia possibile essere specifici con @workspace, per impostazione predefinita GitHub Copilot usa i file aperti nell'editor di testo come contesto aggiuntivo.