Quale stato appartiene alla bozza?
La bozza contiene i valori in modifica. La richiesta inviata è una fotografia degli input usati per l’operazione. Il contenuto generato è un risultato che può arrivare quando la bozza è già cambiata. Riunirli in un oggetto indistinto rende difficile capire quali impostazioni abbiano prodotto un’anteprima.
Immagina di modificare un prompt mentre una richiesta precedente è ancora in elaborazione. Il risultato in arrivo non deve suggerire di aver usato il nuovo testo. L’interfaccia deve mantenere leggibile questa distinzione.
Preferire stati espliciti per le operazioni
Un’operazione può essere inattiva, in coda, in elaborazione, completata o fallita. Flag indipendenti possono creare combinazioni contraddittorie, come caricamento ed errore finale contemporaneamente per la stessa richiesta.
Usa un modello che rappresenti le transizioni reali del prodotto. Se un’etichetta può essere calcolata, evita di duplicarla nello stato memorizzato. La guida React sulla struttura dello stato è una base utile per evitare ridondanze e contraddizioni.
Come trattare una risposta in ritardo?
Una risposta può arrivare dopo la selezione di un altro elemento o l’avvio di una nuova operazione. Decidi se appartiene all’anteprima attiva, alla cronologia dell’oggetto o a un indicatore di attività. È una regola di prodotto prima di essere un dettaglio tecnico.
Associa il risultato all’operazione e all’oggetto di origine. Non lasciare che l’ultima risposta arrivata diventi automaticamente la selezione corrente. Una prova utile completa appositamente due richieste in ordine inverso.
Separare presentazione e coordinamento
Un componente visivo dovrebbe ricevere stato e azioni necessari a mostrare il controllo. Coordinamento delle richieste, permessi e regole di retry appartengono alla logica della funzionalità o a un hook dedicato. Una card o un pannello restano così comprensibili senza conoscere l’intero flusso.
Il confine deve restare semplice. Estrarre un’astrazione generica per una sola mappatura può peggiorare la leggibilità. Parti dalla separazione minima che isola la responsabilità effettiva.
Verificare le transizioni che possono confondere
Dai priorità a comportamenti con conseguenze osservabili: nuovo tentativo dopo un errore, navigazione durante l’elaborazione, risposta tardiva e cambio di selezione. L’asserzione deve descrivere il contratto visibile, per esempio quale anteprima rimane selezionata.
Una buona implementazione rende lo stato leggibile sia a chi mantiene il codice sia a chi usa il prodotto. Aggiungere indicatori non aiuta se descrivono versioni incompatibili dello stesso compito.
- Le modifiche alla bozza non riscrivono gli input già inviati.
- Le risposte tardive restano associate all’oggetto originale.
- Un errore offre un recupero con ambito chiaro.
- I componenti visivi ricevono stati e callback comprensibili.