Solucionar un error ortográfico en un nombre de método

73

Uno de los métodos que utilizo comúnmente en nuestro código base está mal escrito (y es anterior a mí).

Esto realmente me irrita no solo porque esté mal escrito sino que, lo que es más importante, siempre me hace mal escribir el nombre la primera vez que lo escribo (y luego tengo que recordar "Oh, cierto, debería estar mal escrito para esto ... . ")

Estoy haciendo algunos cambios en el método original. ¿Debo aprovechar la oportunidad para simplemente cambiar el nombre del método maldito?

    
pregunta One Two Three 11.06.2014 - 18:53

6 respuestas

136
  

¿Debo aprovechar la oportunidad para simplemente cambiar el nombre del método?

Absolutamente.

Dicho esto, si su código ha sido publicado como API, generalmente también debería dejar el método mal escrito y enviarlo al método con el nombre correcto (marcándolo Obsolete si su idioma admite tales cosas).

    
respondido por el Telastyn 11.06.2014 - 19:01
52

Hay casos en los que debes evitar hacer tales refactorizaciones:

  1. Si el método se usa en una interfaz pública. Un ejemplo canónico es la falta de ortografía de referrer en HTTP referer , se mantiene la ortografía incorrecta, porque cambiar la ortografía ahora tendría demasiadas repercusiones.

  2. Si el código base no está cubierto por ninguna prueba. Cualquier se debe realizar una refactorización en el código probado para poder realizar pruebas de regresión. Refactorizar la base del código que no está bajo prueba es particularmente arriesgado. Si tiene mucho tiempo, comience agregando pruebas; Si trabajas bajo presión de tiempo, arriesgarte a introducir errores sutiles no es lo mejor que puedes hacer si quieres enviar a tiempo.

  3. Si el método se pudiera usar de una forma 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 automática). Por ejemplo, en C #, se puede llamar a un método a través de Reflexión, haciendo que el cuadro de diálogo Cambiar nombre de Visual Studio sea inefectivo. En JavaScript, la función llamada dentro de eval() también es difícil de encontrar. En PHP, las variables variables pueden causar problemas.

  4. Si el tamaño del proyecto es enorme y el método podría ser usado por otros equipos. Esto es similar al primer punto, es decir, la interfaz que proporciona a otros equipos puede considerarse una interfaz pública.

  5. Si lidias con un proyecto crítico para la vida. Es probable 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 no hará que ningún paciente reciba diez veces la radiación autorizada ni que ninguna lanzadera calcule mal su velocidad.

En cualquier otra situación, siéntase libre de cambiar el nombre del método.

    
respondido por el Arseni Mourzenko 11.06.2014 - 19:24
30

He hecho esto hace unos meses (por diferentes motivos). Los pasos que tomé (el lenguaje era Perl):

  1. Cambie el nombre del método. Alias el nombre antiguo con el nuevo nombre (esto no debe romper ningún código, ya que el método puede llamarse por cualquier nombre).
  2. Informa al resto de los desarrolladores sobre el cambio de nombre y por qué, diciéndoles que usen el nuevo nombre de ahora en adelante.
  3. Suprimir la base del código para el nombre antiguo, corregir cualquier ocurrencia.
  4. Registre cualquier uso del nombre antiguo (el uso del nombre antiguo aún debería funcionar en este momento). Arregla esos casos.
  5. Espere (mientras hace 4.), hasta que no aparezcan más entradas en el registro.
  6. Romper el alias. Cree un método utilizando el nombre antiguo que lanza una excepción fatal con un mensaje sobre el cambio de nombre.
  7. Después de un tiempo, elimine el método con el nombre antiguo.

    Por supuesto, su millaje variará.

respondido por el Abigail 12.06.2014 - 15:03
6

Una buena manera de no romper ningún código existente sería encadenar el nuevo nombre del método al antiguo en un tal como

private void MyNewMethodName()
{
    TheOldMethodName();
}

y luego marque el método antiguo como obsoleto (si su idioma lo admite). De esta manera, cualquier código existente seguirá funcionando y usted podrá eliminar gradualmente todos los errores de ortografía antiguos de su base de código. Finalmente, incluso podría copiar / pegar el cuerpo del método en el nuevo método y eliminar el antiguo.

/ Editar Como lo dijo ivo en el comentario: Una cosa aún mejor sería mover el código de TheOldMethodName a MyNewMethodName 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.

    
respondido por el Rémi 12.06.2014 - 16:05
1

Renombrando el método:

  • Hazlo a través de la refactorización para que no tengas más trabajo del que quieras
  • Si su IDE admite la finalización automática, utilícelo cuando haga referencia a ese método

Esas son dos opciones que podrías elegir. Preferiría la finalización automática (por ejemplo, Eclipse IDE) y no necesito escribir el nombre del método. Yendo por el cambio de nombre; solo asegúrese de averiguar qué llama a ese método y cambie las referencias directas en cada lugar. La refactorización será su amigo para eso, pero tenga mucho cuidado al hacerlo.

    
respondido por el Mushy 11.06.2014 - 19:01
0

En general, recomendaría que sí, cámbiele el nombre.

Las otras respuestas aquí han enumerado buenas razones por las que quizás no quiera cambiarle el nombre, así 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 antiguo método para llamar al nuevo método . Luego, marque el antiguo como obsoleto si su idioma lo admite.

    
respondido por el Brian 13.06.2014 - 20:11

Lea otras preguntas en las etiquetas