Я бачу подібні до цього питання щодо імен параметрів, які відповідають властивостям класу, але я не можу знайти нічого щодо використання імені параметра, яке є таким же, як назва типу параметра, за винятком корпусу в C #. Я не можу виявити порушення, але чи вважається це поганою практикою? Наприклад, у мене є такий метод
public Range PadRange(Range range) {}
Цей метод займає діапазон і повертає новий діапазон, до якого було застосовано деяку підкладку. Отже, враховуючи загальний контекст, я не можу придумати більш описову назву параметра. Однак мені нагадується підказка, яку я зібрав, читаючи Code Complete про "психологічну дистанцію". Він говорить
Психологічну відстань можна визначити як легкість, в якій можна розділити два елементи ... Під час налагодження будьте готові до проблем, спричинених недостатньою психологічною дистанцією між подібними назвами змінних та між подібними рутинними іменами. Під час створення коду вибирайте імена з великими відмінностями, щоб уникнути проблеми.
У моєму підписі методу багато "діапазону" відбувається, тому, схоже, це може бути проблемою щодо цієї психологічної дистанції. Зараз я бачу, що багато розробників роблять наступне
public Range PadRange(Range myRange) {}
Я особисто сильно нехтую цією конвенцією. Додавання префікса "мій" до імен змінних не надає додаткового контексту.
Я також бачу таке
public Range PadRange(Range rangeToPad) {}
Мені це подобається краще, ніж "моя" префіксація, але все-таки це все одно не стосується. Він просто відчуває себе надмірно багатослівним і незграбно читає ім'я змінної. Мені зрозуміло, що діапазон буде залитий через назву методу.
Тож з усім цим викладеним, моя кишка повинна йти з першим підписом. Для мене це чисто. Не потрібно форсувати контекст, коли це не потрібно. Але чи я роблю собі чи майбутнім розробникам сумніви щодо цієї конвенції? Я порушую найкращу практику?
Range r
(принаймні, для короткого методу) та Range toPad
.
Range range
це добре.