Veo preguntas similares a esto con respecto a los nombres de parámetros que coinciden con las propiedades de la clase, pero no puedo encontrar nada con respecto al uso de un nombre de parámetro que sea el mismo que el nombre del tipo de parámetro, excepto en el caso de C #. No parece ser una violación que pueda encontrar, pero ¿se considera una mala práctica? Por ejemplo, tengo el siguiente método
public Range PadRange(Range range) {}
Este método toma un rango y devuelve un nuevo rango al que se le ha aplicado algo de relleno. Entonces, dado el contexto genérico, no puedo pensar en un nombre más descriptivo para el parámetro. Sin embargo, me recuerda un consejo que recogí al leer el Código completo sobre "distancia psicológica". Dice
La distancia psicológica se puede definir como la facilidad con la que se pueden diferenciar dos elementos ... Al depurar, prepárese para los problemas causados por una distancia psicológica insuficiente entre nombres de variables similares y nombres de rutinas similares. A medida que construye el código, elija nombres con grandes diferencias para evitar el problema.
La firma de mi método tiene un montón de "Rango" en marcha, así que parece que puede ser un problema con respecto a esta distancia psicológica. Ahora, veo que muchos desarrolladores hacen lo siguiente
public Range PadRange(Range myRange) {}
Personalmente tengo un gran disgusto por esta convención. Agregar un prefijo "mi" a los nombres de variables no proporciona un contexto adicional.
También veo lo siguiente
public Range PadRange(Range rangeToPad) {}
Me gusta esto más que el prefijo "my", pero aún no me importa en general. Simplemente se siente demasiado verboso para mí, y se lee torpemente como un nombre de variable. Para mí, se entiende que el rango se rellenará debido al nombre del método.
Así que con todo esto dispuesto, mi instinto es ir con la primera firma. Para mí, está limpio. No hay necesidad de forzar el contexto cuando no es necesario. Pero, ¿me estoy haciendo daño a mí mismo oa los futuros desarrolladores con esta convención? ¿Estoy violando una buena práctica?