Veo preguntas similares a esta 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 por la carcasa en 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, recuerdo un consejo que tomé al leer Code Complete 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 entre nombres de rutina similares. A medida que construye el código, elija nombres con grandes diferencias para evitar el problema.
La firma de mi método tiene mucho "Alcance", por lo 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 fuerte disgusto por esta convención. Agregar un prefijo "my" a nombres de variables no proporciona contexto adicional.
También veo lo siguiente
public Range PadRange(Range rangeToPad) {}
Me gusta más que el prefijo "my", pero en general no me importa. Simplemente se siente demasiado detallado para mí y se lee torpemente como un nombre variable. Para mí, se entiende que el rango se rellenará debido al nombre del método.
Entonces, con todo esto expuesto, mi instinto es ir con la primera firma. Para mí, está limpio. No es necesario forzar el contexto cuando no es necesario. ¿Pero estoy perjudicando a mí mismo o a los futuros desarrolladores con esta convención? ¿Estoy violando una mejor práctica?
Range r
(al menos para un cuerpo de método corto) y Range toPad
.
Range range
está bien.