The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
Вы называете переменные, такие как textLength, table_name или current-user-email? Все три являются сложными именами, состоящими из более чем одного слова. Несмотря на то, что они выглядят более описательными, чем name, length или email, я настоятельно рекомендую избегать их использования. Я считаю, что переменная с более сложным именем, чем существительное, является признаком проблем в коде. Почему? Потому что мы обычно даем переменной сложное имя, когда ее область видимости настолько большая и сложная, что использование простого существительного может вызвать двусмысленность. А большая и сложная область видимости - это явный признак проблем в коде.
Область видимости переменной - это место, где она видима, например, метод. Взгляните на этот класс в Ruby:
Видимая область действия переменной csvFileName - это метод initialize(), который является конструктором класса CSV. Зачем ему сложное имя, состоящее из трех слов? Разве не ясно, что одноаргументный конструктор класса CSV ожидает имя файла с разделенными запятыми значениями? Я бы переименовал его в file.
Далее, область действия @fileName - это весь класс CSV. Переименование единственной переменной в классе в @file не вызовет никаких путаниц. Все равно ясно, о каком файле идет речь. Та же ситуация с переменной csvLine. Очевидно, что мы имеем дело с CSV-строками. Префикс csv - это просто избыточность. Вот как я бы переработал класс:
Теперь это выглядит ясно и лаконично.
Если вы не можете выполнить такую рефакторизацию, это означает, что ваша область слишком большая и/или слишком сложная. Идеальный метод должен иметь дело с до пяти переменными, а идеальный класс должен инкапсулировать до пяти свойств.
Если у нас есть пять переменных, не можем ли мы найти пять существительных для их названия?
Адам и Ева не имели фамилий. Они были уникальными в Эдеме, как и многие другие персонажи Ветхого Завета. Вторые и отчества были изобретены позже для разрешения неоднозначности. Чтобы сохранить ваши методы и классы чистыми и надежными, а также предотвратить неоднозначность, постарайтесь давать своим переменным и методам уникальные имена из одного слова, как Адаму и Еве, которых именовал Бог.
P.S. Избыточные переменные также являются злом.
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-18 at 05:08
