Действительно длинные имена классов / переменных / свойств / методов

У некоторых моих друзей и коллег есть небольшой конкурс, чтобы найти или написать самые длинные имена классов / переменных / свойств / методов. Имейте в виду, мы стараемся быть хорошими парнями и девочками и делаем понятное и лаконичное наименование, все же объясняя, что делает эта вещь через ее название.

Иногда этого просто не происходит, хотя. Вы сталкивались с этим? Я просто хотел бы увидеть, что там. (Может быть, мои друзья и я не такие сумасшедшие, как мы думаем)

Примечание: я не ищу плохих имен. Это уже здесь. Я ищу хорошее название, которое получилось немного длинным.

13 ответов

Решение

Это не имя класса, а перечисление, но оно намного длиннее:

VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther

из API VMware vSphere. Google для этого, и вы найдете онлайн-документацию.

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

User.IsSpammable

Я считаю, что хорошо иметь длинные имена тестов, которые описывают тест. Например:

testMapWithOneEntryAllowsDifferentEntryPreservingFirst
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst

(Это всего лишь примеры из моей головы... хотя вы поняли идею.)

org.aspectj.weaver.patterns;

public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor {
    boolean ohYesItHas = false;

    public boolean wellHasItThen/*?*/() {
        return ohYesItHas;
    }

    ... more methods...
}

Несколько раз назад у меня была проблема с Hibernate. Я получил исключение NullPointerException в методе с именем findIntendedAliasedFromElementBasedOnCrazyJPARequirements!

protected virtual OcrBarcodeSymbologies GetSupportedBarcodeSymbologies() { }

Длинные имена переменных меня не беспокоят, если нет более очевидного и краткого имени, а наименование нормальное. Например, в Kamaelia есть тип класса с именем this:

threadedadaptivecommscomponent

От этого "страдает" отличная библиотека GTK+. У него очень аккуратно названные функции, но поскольку основным API является C, а GTK+ очень объектно-ориентированный, он должен кодировать имена классов в имени функций. Конструктор для класса X - X_new() и так далее. Это приводит к соглашениям, таким как gtk_recent_chooser_widget_new_for_manager ().

Я уверен, что там есть даже более длинные имена функций, это было только то, что я нашел быстро.:)

bool instrumentAreaDockWidgetVisibilityFollowsChildPresence;

Ознакомьтесь с документацией Apple. Они короли в этом. Очень наглядно, но иногда в милях. Несколько примеров из класса NSString:

NSString.completePathInfoString:caseSensitive:matchesToArray:filterType
NSString.stringByAddingPercentEscapesUsingEncoding

Мой любимый в мире Microsoft: SetProcessWorkingSetSize

В приложении Apple Mail:

_synchronouslyTellServicesToRegisterAndSync()

В приложении я написал:

User.CanViewRestrictedItems()

Я приложение, которое написал коллега:

Profile.DisplayMyDraftOrPendingProfile()
Profile.DisplayMyApprovedProfile()

Просто чтобы начать.

новые:

Имя ограничения внешнего ключа:

constraint ReportCompanyReportTemplateIDVersionID_ReportTemplateVersionReportTemplateIDVersionIDFk foreign key (ReportTemplateID, VersionID) references customer_ReportTemplateVersion (ReportTemplateID, VersionID)

Соглашение об именах, которое я видел за много лет до того, как свободно стало популярным

public DataSet SelectAllUsersWhereDobIsGreaterThan1980AndIsMaleOrderByNameAndAge()

Получить js элементы, которые будут получены, и если страница должна отображать рекомендации.

Другие вопросы по тегам