Con respecto a su segunda pregunta, no conozco ningún estudio publicado o mejores prácticas. Con respecto a la primera pregunta, puedo ofrecer algunas observaciones de la experiencia personal con un producto similar de larga duración donde los nombres 'internos' y 'externos' a veces son diferentes.
Los nombres que realmente me gustaría arreglar son los "homófonos", donde un nombre se usa tanto interna como externamente para diferentes cosas. Esto puede ser realmente confuso, particularmente si las dos cosas no son completamente diferentes (de modo que el contexto ayuda a desambiguar). Un ejemplo (abstracto) de eso en mi experiencia personal es cuando internamente tienes algo así como Foo
una colección de múltiples FooEntity
; externamente, solo este último es visible y se llama "Foo". Me tomó un tiempo darme cuenta de que cuando el manual del cliente hablaba de múltiples "Foo", en realidad significaba múltiples FooEntity
(en un solo Foo
), si eso todavía tiene sentido para usted.
En segundo lugar, me gustaría arreglar cualquier "sinónimo" donde algún nombre externo se haya usado internamente. Al igual que en los nombres de variables, partes de nombres de métodos / funciones, etc. Esto sucede a menudo cuando los desarrolladores implementan algo directamente de la descripción de los requisitos del cliente y se olvidan de "traducir" los nombres. Una vez que eso sucede, el nombre 'incorrecto' también tiende a difundirse, porque otros desarrolladores copian / pegan parte de ese código para usarlo como plantilla para un nuevo código, por ejemplo. Estos sinónimos no son tan confusos, pero pueden ser molestos porque si está buscando referencias en el código, Bar
debe tener en cuenta que algunas partes pueden referirse a él comoQux
, así que tienes que buscar dos veces. (Sin embargo, esto puede ser peor en los idiomas de tipo dinámico que en los estáticos, ya que debe buscar en partes del nombre de variables / funciones / ... en lugar de en el nombre de su tipo). En cuanto al caso inverso de "sinónimos ", Donde un nombre interno se ha utilizado externamente: esto tiende a no suceder tan a menudo, ya que los empleados de atención al cliente, etc., generalmente son menos conscientes de los nombres internos, aunque supongo que es confuso para los clientes cuando sucede.
Si puede evitar o solucionar al menos las dos situaciones anteriores, no estoy seguro de si debe ir tan lejos como para hacer que todos los nombres internos sean los mismos que los externos. Probablemente haya una buena razón por la cual los nombres internos no se cambiaron también cuando el nombre externo se hizo diferente del interno en primer lugar. En mi experiencia personal, esa buena razón es la necesidad de admitir versiones anteriores del producto; podría ser difícil fusionar una corrección de errores de una versión de limpieza anterior a la versión más reciente si se tiene que cambiar mucho código.