Molto tempo fa abbiamo aggiunto una funzione in cui i nostri utenti potevano "accettare" un'immagine dopo che era stata aggiunta a una coda del flusso di lavoro. A quanto pare, abbiamo usato il termine sbagliato e gli utenti hanno effettivamente "approvato" l'immagine.
Cambiare Accetta per approvare sulla nostra interfaccia è facile, basta sostituire una parola. Ma abbiamo programmato tutti i livelli con la parola "accetta", dal nome della classe CSS ai valori del database.
- La classe CSS che trasforma il pulsante in verde: ".accepted";
- Il metodo modello che verifica e associa l'attributo class sul nodo DOM: "isAccepted";
- Attributo di stato JavaScript: matrice con "non revisionato", "accettato" e "pubblicato";
- Colonna dello stato di Mysql: ENUM con "non revisionato", "accettato" e "pubblicato";
- Nomi dei test;
È banale (specialmente quando si hanno i test) sostituire la maggior parte delle occorrenze di accetta di approvare. Un po 'più difficile è migrare i dati, specialmente perché devono essere sincronizzati con la distribuzione.
Questo caso specifico è semplice, ma ho affrontato casi simili, ma più complessi, durante la mia carriera. Quando un file viene anche rinominato e la distribuzione avviene su dozzine di server, o quando sono coinvolti cache del proxy, memcached e mysql.
Lasciare "accettato" su ogni altro livello tranne l'interfaccia è una cattiva idea, dal momento che i nuovi programmatori che si uniscono al team potrebbero non apprendere i motivi storici che hanno portato a questa decisione, e mentre accetta -> approvare sono parole vicine in termini di significato, se esso è stato ribattezzato "in coda per il prossimo meeting manageriale di stato", sicuramente non avrebbe alcun senso. E sembra che se compromettiamo qua e là, in alcune iterazioni i concetti dell'interfaccia utente non avranno alcun orientamento con gli interni del sistema, e certamente non voglio lavorare su un sistema in cui metà dell'output non ha connessioni con le sue interiora.
Quindi, rinomini sempre tutto quando necessario? Se questo ti è successo e hai deciso che il compromesso non valeva la pena, è tornato a morderti? I commenti sul codice o la documentazione per gli sviluppatori sono sufficienti per evitare questo problema?