Unambiguous Names
Недвусмысленные имена. Выбирайте имена, которые максимально недвусмысленно передают назначение функции или переменной. В примере ниже имя метода получилось слишком общим и расплывчатым; оно ничего не говорит о том, что делает функция.
Фунцию было бы правильнее назвать вторым вариантом. На первый взляд имя кажется слишком длинным, но функция вызывается только из одной точки модуля, поэтому ее документирующая ценность перевышает длину.
#naming #functions
Недвусмысленные имена. Выбирайте имена, которые максимально недвусмысленно передают назначение функции или переменной. В примере ниже имя метода получилось слишком общим и расплывчатым; оно ничего не говорит о том, что делает функция.
Фунцию было бы правильнее назвать вторым вариантом. На первый взляд имя кажется слишком длинным, но функция вызывается только из одной точки модуля, поэтому ее документирующая ценность перевышает длину.
#naming #functions
Avoid Wit
Избегайте остроумия. Если имена ваших методов, переменных или комментариев будут излишни остроумны, то их смысл будет понятен только людям, разделяющим чувство юмора автора - и только, если они помнят шутку.
Остроумие часто воплощается в форме просторечий или сленга. Например, не используйте имя whack() вместо kill(). Не используйте шуточки, привязанные к конкретной культуре, - например, eatMyShorts(), вмесо abort().
#naming
Избегайте остроумия. Если имена ваших методов, переменных или комментариев будут излишни остроумны, то их смысл будет понятен только людям, разделяющим чувство юмора автора - и только, если они помнят шутку.
Остроумие часто воплощается в форме просторечий или сленга. Например, не используйте имя whack() вместо kill(). Не используйте шуточки, привязанные к конкретной культуре, - например, eatMyShorts(), вмесо abort().
#naming
Class Member Prefixes
Префиксы членов класса. Префиксы
В качестве примера, во всех официальных плагинах от Unity до сих пор используется именно такой стиль кодирования, через префиксы.
#naming
Префиксы членов класса. Префиксы
m_
, s_
и другие, которыми когда-то снабжались переменные классов, сейчас стали ненужными. Классы и функции должны быть достаточно компактными, чтобы вы могли обходиться без префиксов. Также следует использовать рабочую среду с цветовым выделением членов классов, обеспечивающим их нагляднцю идентификацию.В качестве примера, во всех официальных плагинах от Unity до сих пор используется именно такой стиль кодирования, через префиксы.
#naming
Avoid disinformation name
Избегайте дизинформационных имен. Программисты должны избегать имен, которые вносят дизинформацию. Необходимо называть переменную таким образом, чтобы было понятно, что мы собираемся с ней делать.
#cleancode_dotnet #naming
Избегайте дизинформационных имен. Программисты должны избегать имен, которые вносят дизинформацию. Необходимо называть переменную таким образом, чтобы было понятно, что мы собираемся с ней делать.
#cleancode_dotnet #naming
Имена должны описывать побочные эффекты
Имена должны описывать все, что делает функция, переменная или класс. Не скрывайте побочные эффекты за именами. Не используйте простые глаголы для описания функции, которая делает что-то помимо этой простой операции.
Функция в примере не ограничивается простым получением «m_oos»; она создает объект «m_oos», если он не был создан ранее. Таким образом, эту функцию было бы правильнее назвать «createOrReturnOos».
#tips #naming
Имена должны описывать все, что делает функция, переменная или класс. Не скрывайте побочные эффекты за именами. Не используйте простые глаголы для описания функции, которая делает что-то помимо этой простой операции.
Функция в примере не ограничивается простым получением «m_oos»; она создает объект «m_oos», если он не был создан ранее. Таким образом, эту функцию было бы правильнее назвать «createOrReturnOos».
#tips #naming
Использование переменных цикла
● Используйте порядковые или перечислимые типы для
границ массивов и циклов
● Используйте смысловые имена переменных, чтобы сделать вложенные циклы читабельными
● Ограничивайте вложенность тремя уровнями
● Делайте циклы достаточно короткими, чтобы их можно было увидеть сразу целиком
Сообщают ли переменные i, j и k что-либо о содержимом transaction? Имена переменных payCodeIdx, month и divisionIdx гораздо красноречивее, чем i, j и k.
Компьютер с одинаковой легкостью прочитает обе версии цикла. Однако людям легче будет читать вторую версию, поэтому второй вариант лучше, ведь ваша основная аудитория состоит из людей, а не из компьютеров.
#tips #naming
● Используйте порядковые или перечислимые типы для
границ массивов и циклов
● Используйте смысловые имена переменных, чтобы сделать вложенные циклы читабельными
● Ограничивайте вложенность тремя уровнями
● Делайте циклы достаточно короткими, чтобы их можно было увидеть сразу целиком
Сообщают ли переменные i, j и k что-либо о содержимом transaction? Имена переменных payCodeIdx, month и divisionIdx гораздо красноречивее, чем i, j и k.
Компьютер с одинаковой легкостью прочитает обе версии цикла. Однако людям легче будет читать вторую версию, поэтому второй вариант лучше, ведь ваша основная аудитория состоит из людей, а не из компьютеров.
#tips #naming