Molto tempo fa abbiamo aggiunto una funzione in cui i nostri utenti potevano "accettare" un'immagine dopo essere stata aggiunta a una coda del flusso di lavoro. Risulta, abbiamo usato il termine sbagliato, e gli utenti effettivamente "Approvano" l'immagine.
Cambiare Accept to Approve 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 gira il pulsante verde: ".accepted";
- Il metodo model che verifica e associa l'attributo class sul nodo DOM: "isAccepted";
- Attributo di stato JavaScript: Array con "non revisionato", "accettato" e "pubblicato";
- Colonna di stato Mysql: ENUM con "non revisionato", "accettato" e "pubblicato";
- Nome del test;
È banale (specialmente quando si hanno test) per sostituire la maggior parte delle occorrenze di accettazione da approvare. Un po 'più difficile è migrare i dati, specialmente perché deve essere sincronizzato con la distribuzione.
Questo caso specifico è semplice, ma ho affrontato casi simili, ma più complessi, durante la mia carriera. Quando un file viene rinominato e la distribuzione avviene su dozzine di server, o quando sono coinvolti il caching del proxy, memcached e mysql.
Lasciando "accettato" su ogni altro livello eccetto 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 è stato rinominato "in coda per il prossimo incontro di stato manageriale", certamente non avrebbe alcun senso. E ci sembra che se scendiamo a compromessi qua e là, in poche iterazioni i concetti dell'interfaccia utente non avranno alcun riferimento agli interni del sistema, e certamente non voglio lavorare su un sistema in cui metà dell'output non ha alcuna connessione con il suo interno.
Quindi, rinominate sempre tutto quando necessario? Se questo è successo a te, e hai deciso che il trade-off non valeva la pena, è tornato a morderti? Il commento del codice o la documentazione per gli sviluppatori sono sufficienti per evitare questo problema?