Ладно, это одна из тех мелочей, которые всегда меня раздражали. Как правило, я не сокращаю идентификаторы, и единственный раз, когда я использую короткий идентификатор (например, i
), это узкий цикл. Поэтому меня раздражает, когда я работаю в C ++, и у меня есть переменная, которая должна быть названа, operator
или class
я должен обойти ее или использовать аббревиатуру, потому что она заканчивается торчащим. Предостережение: это может случиться со мной непропорционально часто, потому что я много работаю над дизайном языка программирования, где доменные объекты могут отражать понятия в языке хоста и непреднамеренно приводить к конфликтам.
Как бы вы справились с этим? Сокращать? ( op
) Misspell? ( klass
) Что-то еще? ( operator_
)
$var
синтаксис PHP , то это оно.Ответы:
Примите, что вам, возможно, придется внести незначительные изменения в ваше соглашение об именах, такие как добавление заглавных букв. Лучше принять это как можно скорее, чтобы весь последующий код был согласованным.
Считайте более конкретным. Ключевые слова , как правило, достаточно широк, так что сужение
class
вплоть доdemonstrationClass
не работает только вокруг вопросов , но и повышает читаемость.источник
Это не то, с чем я столкнулся, но если я попал в такую ситуацию, я бы попытался решить ее с помощью следующих параметров по порядку.
источник
const Foo&
не имеет никакого разумного полного имени, кромеfoo
. Конечно, было бы лучше дать вашемуFoo
более описательное имя, чемfoo
если бы оно находилось в теле функции и служило менее специализированной цели.Язык побеждает; Вы не можете перехитрить компилятор (игнорируя такие мерзости, как PL / 1
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END
, но тогда PL / 1 не заставит вас задавать вопрос в первую очередь). По сути, вы должны следовать правилам языка, и вы должны найти альтернативу ключевым словам языка для вашего собственного использования - или найти альтернативный язык.Таким образом, за исключением очень необычных обстоятельств, вы адаптируетесь к языку, а не наоборот.
источник
Вместо сокращения, как насчет удлинения? Если вы реализуете конструкцию класса на языке Foo, как насчет использования FooClass и foo_class? (По модулю, какими бы ни были ваши предпочтения в отношении корпуса).
источник
Некоторые из сокращений, которые я использовал
class
, в порядке частоты:cls
clss
clazz
theClass
aClass
Если я знаю, какой класс
Class
представляет экземпляр, я мог бы включить его в имя переменной:stringClass = Class.forName("java.lang.String");
источник
В C и C ++ все ключевые слова строчные, а язык чувствителен к регистру, поэтому время от времени нажимайте клавишу Shift, и многие проблемы исчезают.
В Модуле 2, ключевые слова прописных буквы - но до тех пор , пока ваши идентификаторы имеют некоторые строчные буквы разница очевидна и столкновение невозможно.
Кроме того, соглашения об абсолютном именовании в некоторой степени должны отражать обычные соглашения языка, который вы используете, поэтому я, безусловно, напишу «myClass» на Java, где я, скорее всего, напишу «My_Class» на C ++.
По сути, вы пишете не только для компилятора, но то, что люди находят читабельным, зависит в некоторой степени от контекста и связанных с ним ожиданий.
источник
class
иClass
повредит читабельности кода.Я не часто сталкиваюсь с этим, но когда я делаю это, это, как правило, не проблема, потому что я использую Delphi, и это позволяет вам обойти эту проблему, добавляя & к идентификатору. Таким образом, «класс» не является допустимым идентификатором, но «& класс» является.
источник
Я бы добавил какое-то пространство имен к имени переменной. Например, предположим, что у вас есть модуль с именем user, тогда я бы изменил оператор имени переменной на что-то вроде user_operator или userOperator.
источник
a
,an
иthe
используется с тревожной частотой начинающими студентами CS.aPerson
.a
кроме переменных с жестким циклом: /изменить или настроить мое соглашение об именах
источник