Hace mucho tiempo agregamos una función en la que nuestros usuarios podían "Aceptar" una imagen después de agregarla a una cola de flujo de trabajo. Resulta que usamos el término incorrecto y los usuarios realmente "aprueban" la imagen.
Cambiar Aceptar para aprobar en nuestra interfaz es fácil, solo reemplaza una palabra. Pero programamos todas las capas con la palabra "aceptar", desde el nombre de la clase de CSS hasta los valores de la base de datos.
- La clase CSS que da vuelta al botón verde: ".accepted";
- El método modelo que verifica y enlaza el atributo de clase en el nodo DOM: "isAccepted";
- Atributo de estado de JavaScript: Array con "no revisado", "aceptado" y "publicado";
- Columna de estado Mysql: ENUM con "no revisado", "aceptado" y "publicado";
- nombres de prueba;
Es trivial (especialmente cuando tiene pruebas) reemplazar la mayoría de los casos de aceptación para aprobar. Un poco más difícil es migrar los datos, especialmente porque se debe sincronizar con la implementación.
Este caso específico es simple, pero he enfrentado casos similares, pero más complejos, durante mi carrera. Cuando también se cambia el nombre de un archivo y la implementación se realiza en docenas de servidores, o cuando el almacenamiento en caché de proxy, memcached y mysql están involucrados.
Dejar "aceptado" en todas las demás capas, excepto en la interfaz, es una mala idea, ya que los nuevos programadores que se unen al equipo podrían no conocer las razones históricas que llevaron a esta decisión, y mientras aceptan - > aprobar son palabras cercanas en términos de significado, si se le cambió el nombre a "en cola para la próxima reunión de estado gerencial", ciertamente no tendría ningún sentido. Y se siente que si nos comprometemos aquí y allá, en algunas iteraciones los conceptos de la interfaz de usuario no tendrán relación con los elementos internos del sistema, y ciertamente no quiero trabajar en un sistema donde la mitad de la salida no tiene conexión con sus entrañas.
Entonces, ¿siempre cambia el nombre de todo cuando es necesario? Si esto te sucedió a ti y decidiste que la compensación no valía la pena, ¿volvió para morderte? ¿Es suficiente el comentario del código o la documentación del desarrollador para evitar este problema?