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.
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:
- prompt vago;
- 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.