AI
Perché ho smesso di fidarmi delle risposte dell'AI all'università senza controllarle
Codice funzionante e codice compreso si sono rivelati cose diverse. Adesso ogni risposta dell'AI viene trattata come una code review prima che io la accetti.
Quando ho iniziato a usare l'AI per i progetti universitari, sembrava una scorciatoia.
Potevo chiedere codice, copiare la risposta, e finire i task più in fretta. Il problema è arrivato quando dovevo spiegare l'applicazione al mio professore.
A volte il codice funzionava, ma non riuscivo a spiegare chiaramente perché esisteva una classe, come si muoveva il request attraverso il sistema, o cosa stesse facendo ogni layer.
Per esempio, potevo avere questa struttura:
Controller
→ Service
→ Repository
→ Database
Ma quando qualcuno mi chiedeva di spiegare il flusso, arrancavo.
Questo mi ha fatto capire che codice funzionante non è la stessa cosa di codice compreso.
Ho smesso di copiare tutto
Le risposte dell'AI possono sembrare corrette e professionali, ma possono comunque includere pattern non necessari, librerie obsolete, o presupposti scorretti.
Invece di copiare l'intera risposta, ho iniziato a concentrarmi sui concetti. Adesso faccio domande come:
- Perché serve questa classe?
- Che problema risolve questo pattern?
- Dove inizia e finisce il request?
- Questo codice potrebbe essere più semplice?
- Riesco a spiegarlo senza leggerlo?
Ho anche iniziato a trattare il codice generato dall'AI come una code review. Leggo le modifiche, controllo le dependency, eseguo il codice, e provo a capire ogni passaggio importante prima di accettarlo.
Capire il flusso
Per un'API .NET di base, dovrei riuscire a spiegare:
Il client invia un request.
Il Controller lo riceve.
Il Service applica la business logic.
Il database viene aggiornato.
L'API restituisce una risposta.
Se non riesco a spiegare quel flusso, probabilmente non capisco ancora l'applicazione.
Uso ancora l'AI, ma adesso la uso per spiegare concetti, revisionare codice, e suggerire miglioramenti.
La lezione principale era semplice:
AI should support my thinking, not replace it.