Blog

Git Hub Copilot

Un assistente per la scrittura del Codice

GitHub Copilot: cos’è, a cosa serve e come usarlo

Meta description SEO: Guida pratica a GitHub Copilot: cos’è, quando è stato introdotto, come usarlo in Visual Studio Code (autocomplete e Copilot Chat) e online su GitHub, con pro e contro e un esempio completo di regressione lineare in Python.

Cos’è GitHub Copilot e a cosa serve

GitHub Copilot è un assistente AI per programmatori. Mentre scrivi codice può suggerire righe o funzioni direttamente nell’editor e, con Copilot Chat, puoi fare domande e farti generare codice in modo conversazionale.

In pratica ti serve per:

  • scrivere più velocemente boilerplate e parti ripetitive
  • ottenere file completi partendo da una richiesta (prompt)
  • migliorare e correggere codice con suggerimenti mirati tramite chat

Quando è stato introdotto

Le tappe principali:

  • 29 giugno 2021: annuncio e rilascio come technical preview
  • 21 giugno 2022: disponibilità generale per tutti gli sviluppatori

Due modi per usare Copilot: VS Code e Online

Puoi usare Copilot dentro Visual Studio Code oppure nella versione online su GitHub. Qui sotto trovi i passaggi operativi, con dettagli su come ottenere codice e come usare la chat in entrambi i metodi.

Metodo 1: Visual Studio Code (autocomplete e Copilot Chat)

Installazione e accesso

Per iniziare in VS Code:

  • Apri Extensions e installa GitHub Copilot e, se richiesto, GitHub Copilot Chat
  • Fai Sign in con GitHub quando l’estensione lo richiede
Come farti generare codice con i suggerimenti inline

Il metodo più efficace è guidare Copilot con un commento chiaro e poi iniziare a scrivere gli import. Copilot proporrà blocchi di codice che puoi accettare e rifinire.

# Genera un esempio completo di regressione lineare con scikit-learn:
# - dataset sintetico con numpy
# - train_test_split(random_state=42)
# - LinearRegression
# - metriche: R2, MAE, RMSE
# - grafico scatter test + linea predetta ordinata
Come accedere alla chat in VS Code

In VS Code hai due modalità:

  • Chat view: pannello laterale dove scrivi richieste complete e gestisci la conversazione
  • Inline chat: chat nell’editor per chiedere modifiche direttamente su una riga o su una selezione
Prompt pronto in VS Code Chat per ottenere una regressione lineare

Incolla questo prompt nella chat:

Genera un file linear_regression.py pronto da eseguire.
Usa numpy + scikit-learn: dataset sintetico, train_test_split(random_state=42), LinearRegression,
stampa coefficiente e intercetta, calcola R2, MAE, RMSE e disegna scatter test + linea delle predizioni ordinata.
Restituisci un unico blocco di codice.

Metodo 2: Online (Copilot Chat nel browser, esperienza GitHub)

Puoi usare Copilot anche dal browser, nella pagina dedicata di GitHub. È utile se vuoi scrivere prompt lunghi e ottenere una bozza completa senza aprire l’IDE.

Come usarla passo passo
  • Apri la pagina Copilot su GitHub
  • Accedi con il tuo account
  • Avvia una conversazione e incolla il prompt
  • Chiedi output in un unico file
URL esperienza online
https://github.com/copilot/
Prompt pronto per la chat online
Scrivi un esempio completo di regressione lineare in Python con scikit-learn.
Requisiti: dataset sintetico numpy, split con random_state=42, LinearRegression, stampa slope e intercetta,
metriche R2, MAE, RMSE, grafico scatter test + retta predetta ordinata.
Output: file linear_regression.py in un unico blocco.

Pro e contro: VS Code vs Online

Differenze pratiche tra i due metodi:

Metodo Pro Contro
VS Code
  • codice generato direttamente nei file del progetto
  • Inline chat utile per refactoring mirati “sul punto”
  • richiede setup e login
  • serve review per evitare codice non coerente con stile e dipendenze
Online (GitHub)
  • zero setup IDE
  • ottimo per prompt lunghi e bozze complete
  • spesso devi copiare e adattare nel progetto locale
  • dipendenze e struttura potrebbero richiedere modifiche

Codice generato: regressione lineare completa in Python

Salva come linear_regression.py ed esegui con Python. Assicurati di avere numpy, scikit-learn e matplotlib installati.

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
import matplotlib.pyplot as plt


def main():
    # 1) Dataset sintetico: y = 3x + 5 + rumore
    rng = np.random.default_rng(42)
    X = rng.uniform(0, 10, size=(200, 1))
    noise = rng.normal(0, 2.0, size=200)
    y = 3.0 * X[:, 0] + 5.0 + noise

    # 2) Split train/test
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.2, random_state=42
    )

    # 3) Modello
    model = LinearRegression()
    model.fit(X_train, y_train)

    # 4) Predizioni e metriche
    y_pred = model.predict(X_test)

    r2 = r2_score(y_test, y_pred)
    mae = mean_absolute_error(y_test, y_pred)
    rmse = np.sqrt(mean_squared_error(y_test, y_pred))

    print("Coefficiente (slope):", float(model.coef_[0]))
    print("Intercetta:", float(model.intercept_))
    print("R2:", round(r2, 3))
    print("MAE:", round(mae, 3))
    print("RMSE:", round(rmse, 3))

    # 5) Grafico: punti test + retta predetta (ordinata per X)
    order = np.argsort(X_test[:, 0])
    plt.scatter(X_test, y_test, label="Dati test")
    plt.plot(X_test[order], y_pred[order], label="Predizione (retta)")
    plt.xlabel("X")
    plt.ylabel("y")
    plt.legend()
    plt.show()


if __name__ == "__main__":
    main()

Fonti

Riferimenti:

Livio Bollini
Walter Livio Bollini

Matematico & Informatico · Intelligenza Artificiale · Sviluppo Web