Действительно длинные имена классов / переменных / свойств / методов
У некоторых моих друзей и коллег есть небольшой конкурс, чтобы найти или написать самые длинные имена классов / переменных / свойств / методов. Имейте в виду, мы стараемся быть хорошими парнями и девочками и делаем понятное и лаконичное наименование, все же объясняя, что делает эта вещь через ее название.
Иногда этого просто не происходит, хотя. Вы сталкивались с этим? Я просто хотел бы увидеть, что там. (Может быть, мои друзья и я не такие сумасшедшие, как мы думаем)
Примечание: я не ищу плохих имен. Это уже здесь. Я ищу хорошее название, которое получилось немного длинным.
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 ().
Я уверен, что там есть даже более длинные имена функций, это было только то, что я нашел быстро.:)
Ознакомьтесь с документацией 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
элементы, которые будут получены, и если страница должна отображать рекомендации.