Uno de los métodos que uso habitualmente en nuestra base de código está mal escrito (y me precedió).
Esto realmente me irrita no solo porque está mal escrito, sino que lo más importante es que SIEMPRE me equivoco el nombre la primera vez que lo escribo (y luego tengo que recordar "Oh, claro, debería estar mal escrito para esto ...")
Estoy haciendo algunos cambios en el método original. ¿Debería aprovechar la oportunidad para cambiar el nombre del método maldito?
refactoring
Uno dos tres
fuente
fuente
Respuestas:
Absolutamente.
Dicho esto, si su código se ha lanzado como API, generalmente también debe dejar el método mal escrito y reenviarlo al método correctamente nombrado (marcándolo Obsoleto si su idioma admite tales cosas).
fuente
Hay casos en los que debe evitar hacer tales refactorizaciones:
Si el método se usa en una interfaz pública. Un ejemplo canónico es la falta de ortografía del referente en el referente HTTP , la ortografía incorrecta se mantiene, porque cambiar la ortografía ahora tendría demasiadas repercusiones.
Si la base del código no está cubierta por ninguna prueba. Cualquier refactorización debe realizarse en el código probado para poder realizar pruebas de regresión. Refactorizar la base de código que no está bajo prueba es particularmente arriesgado. Si tiene mucho tiempo, comience agregando pruebas; Si trabaja bajo presión de tiempo, arriesgarse a introducir errores sutiles no es lo mejor que puede hacer si desea enviar a tiempo.
Si el método pudiera usarse de una manera inusual , lo que hace que su uso sea prácticamente imposible de encontrar (a través de Ctrl + F o mediante una herramienta de refactorización automatizada). Por ejemplo, en C #, se puede llamar a un método a través de Reflection, lo que hace que el cuadro de diálogo Cambiar nombre de Visual Studio sea ineficaz. En JavaScript, la función llamada inside también
eval()
es difícil de encontrar. En PHP, las variables variables pueden causar problemas.Si el tamaño del proyecto es enorme y el método podría ser utilizado por otros equipos. Esto es similar al primer punto, es decir, la interfaz que proporciona a otros equipos puede considerarse una interfaz pública.
Si se trata de un proyecto vital. Lo más probable es que la falta de ortografía no sea demasiado importante para justificar unos pocos meses de papeleo para cambiar el nombre del método y garantizar que no hará que ningún paciente reciba diez veces la radiación autorizada o cualquier lanzadera para calcular mal su velocidad.
En cualquier otra situación, no dude en cambiar el nombre del método.
fuente
Lo hice hace unos meses (por diferentes razones). Los pasos que tomé (el idioma era Perl):
Después de un tiempo, elimine el método con el nombre anterior.
Por supuesto, su kilometraje variará.
fuente
Una buena manera de no romper ningún código existente sería encadenar el nombre del nuevo método al antiguo en un código como
y luego marque el método anterior como obsoleto (si su idioma lo admite). De esta manera, cualquier código existente seguirá funcionando y puede eliminar gradualmente todos los errores de ortografía antiguos de su base de código. Eventualmente, incluso podría copiar / pegar el cuerpo del método en el nuevo método y eliminar el anterior.
/ Editar Como dijo ivo en el comentario: Una cosa aún mejor sería mover el código
TheOldMethodName
alMyNewMethodName
y llamar al nuevo método desde el anterior. Este también tendría la ventaja de ayudar al desarrollador a entender dónde pertenece el código.fuente
Renombrar el método:
Esas son dos opciones que podrías elegir. Preferiría la finalización automática (por ejemplo, Eclipse IDE) y no necesitaré escribir el nombre del método. A por el cambio de nombre; solo asegúrate de averiguar qué llama a ese método y cambiar las referencias directas en cada lugar. Refactorizar será tu amigo para eso, pero ten mucho cuidado al hacerlo.
fuente
Generalmente recomendaría que sí, renómbrelo.
Sin embargo, otras respuestas aquí han enumerado buenas razones por las cuales es posible que no desee cambiarle el nombre, por lo que si se encuentra en una de esas situaciones, puede crear un nuevo método con el nombre y la implementación adecuados, y cambiar el método anterior para llamar al nuevo método . Luego marque el antiguo como obsoleto si su idioma lo admite.
fuente