Мои имена методов или переменных слишком длинные? [закрыто]


15

Таким образом, я в настоящее время был в середине кодирования, к сожалению для меня, я был в «Зоне», тогда я подумал про себя, длинные ли имена моих методов / переменных?

ПОП из зоны я иду!

Поэтому я пришел сюда, чтобы спросить, слишком ли длинные имена моих методов / переменных? Ты будешь судьей! Бонус указывает любому, кто может понять, что я пишу, хотя я уверен, что гуру это поймет быстро!

Во всяком случае, вот некоторые из моих методов и имен переменных.

Методы: searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), searchBlockedListForBlockedSquares ()

Переменные: isNextToBlockedSquares;

Я думаю, что была только одна переменная, которая казалась слишком длинной.


Ответы:


31

Ваши имена кажутся мне нормальными с точки зрения длины. Однако то, как они названы, наводит на мысль, что, возможно, некоторые новые классы в порядке?

Например, вместо searchBlockedListForBlockedSquares()вас могло бы быть blockedList.getBlockedSquares(). Точно так же isCurrentSquareNextToAtLeastOneBlockedSquare()становится currentSquare.isAdjacentToABlockedSquare().


Рядом было слово, которое я искал! Спасибо =)
Брайан Харрингтон

@ Брайан: Пожалуйста. :)
Адам Лир

11

Я верю в описательные имена переменных, даже если это означает длинные имена переменных. И поскольку intellisense становится все более популярным, я не думаю, что это сильно влияет на производительность.

Я ненавижу сокращения, потому что их практически невозможно постоянно использовать. Кроме того, они могут быть неоднозначными, и они действительно затрудняют чтение. Даже когда они являются частью стандарта, они мне не нравятся. Плюс, когда дело доходит до этого, они не удаляют столько букв, если вы не сокращаете много. И сокращение много убивает удобочитаемость.

Самая большая проблема, которую представляют длинные имена, заключается в том, насколько длинными могут стать строки кода. Вызов функции с длинным именем и передача ей двух или трех длинных имен переменных может создать одну длинную строку кода. Из-за этого я стараюсь сделать свои имена как можно короче, хотя, опять же, я бы предпочел иметь описательные имена, даже если это означает перенос строк или прокрутку.

Однако, глядя на названия ваших примеров, тот факт, что все заканчивается BlockedSquares, заставляет меня думать, что часть имени может быть избыточной. Фактически, это также может означать, что эти элементы могут быть инкапсулированы в их собственный класс, вероятно, с именем BlockedSquares. Это изменение делает имена немного короче.


5

Имя переменной - это неправильная длина, когда оно не четко описывает ее назначение. Это относится к тому, чтобы быть слишком коротким или слишком длинным.

Краткие и краткие имена переменных могут быть неоднозначными или, что еще хуже, не имеют отношения к тому, что это за переменная. Во времена интерпретируемого бейсика переводчик ограничивался двумя именами персонажей. Было очень сложно придумать значимые имена в большой программе. Однобуквенные имена переменных часто используются для циклов for и счетчиков, но я думаю, что их следует избегать в противном случае. for (i = 0; i < 10; i++) {...}использует, iи это довольно часто. jэто имя вторичной переменной.

Длинные имена переменных становятся слишком длинными, когда они становятся многословными или полными пустых слов, что делает их длиннее, чем необходимо. Если у меня есть куча переменных с одинаковыми именами, я попытаюсь удалить общие части, которые являются обязательными, и сохранить уникально идентифицирующие части имен.

Я бы назвал " isCurrentSquareNextToAtLeastOneBlockedSquare" currentSquareNextToBlockedSquare?, если бы делал это в Ruby.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.