5 cose che l'IA sbaglia con la Fetch API

Gli assistenti di programmazione basati su IA scrivono codice che sembra corretto. Non scrivono codice che sia effettivamente corretto.

La maggior parte dei modelli suggerisce un semplice snippet di fetch. Funziona in una demo, ma fallisce in produzione. La Fetch API è uno strumento di basso livello, non un client HTTP completo. Richiede che tu prenda decisioni architettoniche che l'IA non può prendere.

Ecco 5 modi in cui l'IA fallisce con fetch:

  • Error Handling L'IA presuppone che una richiesta fallita rifiuti la promise. Non è così. Un errore 404 o 500 non attiva un blocco catch. Devi controllare manualmente response.ok. Se non lo fai, la tua app tratterà le pagine di errore come dati validi.

  • Request Cancellation L'IA spesso dimentica di usare AbortController. Ciò causa memory leak e race condition in framework come React. Se un utente scorre rapidamente una lista, le vecchie richieste potrebbero risolversi dopo quelle nuove. Questo lascia la tua UI con dati obsoleti. Devi anche filtrare per AbortError per evitare di mostrare messaggi di errore durante le cancellazioni intenzionali.

  • Streaming Data L'IA tratta le risposte come blocchi singoli. Questo si rompe quando si gestiscono file di grandi dimensioni o risposte di LLM. I chunk di rete possono dividere a metà un singolo carattere o una riga JSON. Devi usare un TextDecoderStream e un buffer per gestire correttamente i byte attraverso i chunk.

  • Resilience and Retries L'IA fornisce loop di retry ingenui. Questi loop sono pericolosi. Spesso riprovano le richieste POST, il che può causare doppi addebiti o dati duplicati. Inoltre, mancano di backoff e jitter. Questo trasforma un piccolo problema temporaneo del server in un blackout massiccio. Devi riprovare solo le richieste idempotenti e utilizzare l'exponential backoff.

  • Environment Differences L'IA confonde le regole del Browser e di Node.js. Node.js non impone il CORS. Node.js ha timeout predefiniti differenti. In Node, devi consumare il body per evitare la perdita di connessioni. L'IA non può conoscere il tuo runtime di destinazione, quindi spesso ti fornisce codice che funziona in uno ma si rompe nell'altro.

La Strategia:

Usa l'IA per lo scaffolding. Lasciala scrivere il boilerplate e la struttura di base.

Devi gestire la semantica. Decidi tu se un 404 è un errore. Decidi tu il tuo budget di retry. Decidi tu come gestire gli header di autenticazione.

L'IA ottimizza per un codice plausibile. Tu devi ottimizzare per la correttezza.

Fonte: https://dev.to/devunionx/new5-things-even-ai-cant-do-fetch-api-328e