modulo 04 / lezione 16

Prompt per il ciclo di codice

Prompt per generare funzioni e componenti

Scrivere prompt che producono codice integrabile, non snippet decontestualizzati.

60 min Prompt Engineering

Prompt per generare funzioni e componenti

Generare codice è facile. Generare codice che entra davvero in una codebase, rispetta interfacce, casi limite e stile locale è un altro lavoro. Il prompt deve descrivere il punto di integrazione, non solo il risultato desiderato.

Perché questa lezione conta

Lo snippet isolato spesso sembra corretto perché non deve convivere con niente. In un progetto reale invece una funzione ha firma, tipi, errori, dipendenze, test, naming e responsabilità. Un componente ha stati, accessibilità, proprietà, eventi e stile esistente.

Un buon prompt per generare codice deve impedire al modello di scegliere liberamente questi aspetti.

Cosa specificare

Firma e contratto

Indica input, output, errori e comportamento sui casi limite.

Genera una funzione `normalizeEmail(input: string): string | null`.
Regole:
- trim degli spazi;
- lowercase del dominio;
- ritorna null se input vuoto o senza @;
- non lancia eccezioni.

Contesto di integrazione

Spiega dove vivrà il codice:

Il file vive in src/domain/user.ts.
Non deve importare moduli UI.
Deve essere testabile senza browser.

Dipendenze e pattern

Se il progetto evita dipendenze nuove, dillo. Se usa helper esistenti, nominali.

Usa solo funzioni standard.
Non aggiungere librerie di validazione.
Segui lo stile delle funzioni già presenti in user.ts.

Prompt operativo

Ruolo: sviluppatore TypeScript pragmatico.

Obiettivo:
Genera la funzione `normalizeEmail(input: string): string | null`.

Contesto:
- file destinazione: src/domain/user.ts;
- il dominio non importa UI, storage o API;
- il progetto preferisce funzioni pure e testabili.

Vincoli:
- nessuna dipendenza;
- niente side effect;
- non lanciare eccezioni;
- non modificare altre funzioni.

Output:
1. codice della funzione;
2. 5 test case essenziali;
3. note su casi non coperti.

Laboratorio guidato

Scegli una funzione o un componente piccolo. Scrivi due prompt:

  1. prompt vago;
  2. prompt con firma, contesto, vincoli e test.

Confronta il risultato su:

  • numero di assunzioni implicite;
  • coerenza con il progetto;
  • casi limite coperti;
  • dipendenze introdotte;
  • facilità di test.

Output atteso

Un template di prompt per generare funzioni o componenti:

Genera <nome artefatto>.
Firma/API:
Contesto file:
Responsabilità:
Vincoli:
Casi limite:
Test richiesti:
Formato risposta:

Checklist di verifica

  • la firma è esplicita;
  • i casi limite sono elencati;
  • il codice non introduce dipendenze non richieste;
  • il punto di integrazione è chiaro;
  • i test dimostrano il comportamento, non solo l’esistenza della funzione.

Errori comuni

Chiedere “una funzione che fa X” senza contratto. Il modello sceglierà error handling, tipi e casi limite.

Non dire dove vive il codice. Una funzione di dominio e una funzione UI hanno dipendenze diverse.

Accettare test deboli. Test che verificano solo happy path non rendono il codice integrabile.

Collegamenti

  • Modulo: Prompt per il ciclo di codice — lezione 16 del corso.
  • Lezione precedente: Output strutturato: JSON, schema, grammar.
  • Prossima lezione: Prompt per refactor: prima il piano, poi il diff.