Должно ли имя параметра метода указывать его единицу в имени? - PullRequest
0 голосов
/ 16 января 2010

Из следующих двух опций для имен параметров методов, которые имеют единицу измерения и значение, что вы предпочитаете и почему? (Я использовал синтаксис Java, но мой вопрос применим к большинству языков.)

public void move(int length)

или

public void move(int lengthInMetres)

Вариант (1) может показаться достаточным, но я нахожу, что когда я кодирую / печатаю, моя среда IDE может указывать мне, что мне нужно значение длины, но мне обычно приходится разбивать шаг и искать документ метода чтобы определить единицы измерения, чтобы я передал правильное значение (а не километры вместо метров, например). Это может быть досадным прерыванием мыслительного процесса. Вариант (2) облегчает эту проблему, но может быть многословным, особенно если ваш модуль является metresPerSecondSquared или чем-то подобным. Какой из них вы считаете лучшим?

Ответы [ 2 ]

0 голосов
/ 16 января 2010

Я бы предпочел второй подход (т.е. lengthInMeters), поскольку он точно описывает входные данные, необходимые для метода. Тот факт, что вам непонятно вычислять модули, когда вы просто пишете код, будет означать, что было бы гораздо более запутанным, когда вы (или кто-то еще) посмотрите на тот же кусок кода позже. Что касается вопроса о длинном имени переменной, вы можете найти способы его сокращения (скажем, «mtrsPerSecondSquared»).

Также во втором подходе защиты в книге Code Complete упоминается исследование, которое указывает, что усилия, необходимые для отладки программы, были сведены к минимуму, когда имена переменных в среднем составляли от 10 до 16 символов.

0 голосов
/ 16 января 2010

Я бы рекомендовал сделать имена ваших параметров (и методов) как можно более четкими, даже если они стали многословными.Вы будете рады, если вы посмотрите на код или будете использовать его через 6 месяцев, или когда кто-то другой должен взглянуть на ваш код.
Если вы считаете, что имена становятся слишком длинными, подумайте о том, чтобы переписать их.В вашем примере вы можете использовать имя параметра int Metres, которое, вероятно, будет достаточно понятным.Попробуйте изменить имя метода, например, public void moveMetres(int length).

. В Visual Studio комментарии XML, созданные при вводе 3 символов комментария над определением метода, появятся в подсказках Intellisense при использовании метода в других местах.Другие IDE могут иметь аналогичную функциональность.

Сокращения следует использовать с осторожностью.Если абсолютно необходимо, используйте только общеизвестные и / или соответствующие отраслевые стандартные сокращения и будьте последовательными, т. Е. Используйте одно и то же сокращение везде .

. Сделайте шаг назад.Напишите код, а затем перейдите к чему-то другому.Вернитесь на следующий день и проверьте, понятны ли имена.

Также могут помочь рецензии.Спросите кого-нибудь, кто знает язык программирования (или просто мыслит логически), но не обладает определенными функциональными возможностями, достаточно ли ясна ваша схема именования или для мозгового штурма альтернатив.Это может быть бедняга, который должен поддерживать ваш код в будущем!

...