Вы называете переменные, такие как textLength, table_name или current-user-email? Все три являются составными именами, которые состоят из более чем одного слова. Хотя они выглядят более описательно, чем имя, длина или адрес электронной почты, я настоятельно рекомендую их избегать. Я считаю, что имя переменной, более сложное, чем существительное, является запахом дурного кода. Почему? Потому что мы обычно даем переменной составное имя, когда его область настолько велика и сложна, что простое существительное будет звучать неоднозначно. И большой, сложный объем - очевидный запах кода.
Область видимости переменной, как и метода, например. Посмотрите на этот класс Ruby:
class CSV
def initialize(csvFileName)
@fileName = csvFileName
end
def readRecords()
File.readLines(@fileName).map |csvLine|
csvLine.split(',')
end
end
end
Видимым диапазоном переменной csvFileName является метод initialize (), который является конструктором класса CSV. Зачем это сложное имя, состоящее из трех слов? Разве уже не ясно, что конструктор с одним аргументом класса CSV ожидает имя файла с запятыми? Я бы переименовал его в file.
Далее, область @fileName является целым классом CSV. Переименование одной переменной в классе только в @file не приведет к путанице. По-прежнему ясно, с каким файлом мы имеем дело. Такая же ситуация существует с переменной csvLine. Понятно, что здесь мы имеем дело с линиями CSV. Префикс csv - это просто избыточность. Вот как я реорганизую класс:
class CSV
def initialize(file)
@file = file
end
def records()
File.readLines(@file).map |line|
line.split(',')
end
end
end
Теперь он выглядит ясно и коротко.
Если вы не можете выполнить такой рефакторинг, это означает, что ваш объем слишком велик и / или слишком сложен. Идеальный метод должен иметь дело не более чем с пятью переменными, а идеальный класс должен содержать до пяти свойств.
Если у нас есть пять переменных, мы не можем найти пять существительных, чтобы назвать их?
У Адама и Евы не было вторых имен. Они были уникальны в Эдеме, как и многие другие персонажи Ветхого Завета. Второе и второе имена были изобретены позже, чтобы устранить двусмысленность. Чтобы ваши методы и классы были чистыми и твердыми, и чтобы предотвратить неоднозначность, попробуйте дать вашим переменным и методам уникальные имена из одного слова
PS. Кроме того, избыточные переменные также являются злом
Комментариев нет:
Отправить комментарий