2008-10-17 5 views
6

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

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

Примечание: Я не ищу плохо именования. Это уже here. Я искал good Именование, которое только что получилось немного.

+1

Oracle не позволяет играть в эту игру. 32 символа макс, и мы живем в 2008 году! – 2008-10-17 13:34:51

+3

огромное имя, вероятно, плохое имя, поскольку тот факт, что если вам нужно огромное имя, чтобы описать, что он делает, это, скорее всего, слишком много;) – workmad3 2008-10-17 13:35:50

+0

@ workmad3 Слишком верно! Неспособность правильно назвать функцию, как правило, является симптомом другой проблемы, она слишком многого! – 2008-10-17 13:38:46

ответ

16

Это не класс имя, но перечисление, но это намного больше:

VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther 

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

1

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

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

Моя любимая в мире Microsoft: SetProcessWorkingSetSize

8

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

testMapWithOneEntryAllowsDifferentEntryPreservingFirst 
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst 

(Это только примеры с верхней частью моей головы ... Вы получаете идею, хотя.)

1

В яблочных почтовом приложении:

_synchronouslyTellServicesToRegisterAndSync() 

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

User.CanViewRestrictedItems() 

I приложение коллега написал:

Profile.DisplayMyDraftOrPendingProfile() 
Profile.DisplayMyApprovedProfile() 

Для начала.

новый:

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

constraint ReportCompanyReportTemplateIDVersionID_ReportTemplateVersionReportTemplateIDVersionIDFk foreign key (ReportTemplateID, VersionID) references customer_ReportTemplateVersion (ReportTemplateID, VersionID) 
3
protected virtual OcrBarcodeSymbologies GetSupportedBarcodeSymbologies() { } 
2

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

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

12

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

User.IsSpammable

4

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

2

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

threadedadaptivecommscomponent 
1

соглашение об именовании Я видел, года до FLUENT стали модой

public DataSet SelectAllUsersWhereDobIsGreaterThan1980AndIsMaleOrderByNameAndAge() 
7
org.aspectj.weaver.patterns; 

public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor { 
    boolean ohYesItHas = false; 

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

    ... more methods... 
} 
1
bool instrumentAreaDockWidgetVisibilityFollowsChildPresence; 
0

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