2008-10-17 49 views
6

我的一些朋友和同事有一場跑步比賽,可以找到或寫出最長的類/變量/屬性/方法名稱。請記住,我們努力成爲優秀的男孩和女孩,並保持名稱的可理解性和簡潔性,同時仍然通過名稱解釋事情的作用。真的很長的類/變量/屬性/方法名稱

雖然有時它不會發生。你碰到過這個嗎?我只想看看那裏有什麼。 (也許我的朋友和我沒有我們想象的那麼瘋狂)

注意:我不是在尋找不好的命名。這已經是here。我正在尋找命名,只是有點長。

+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 
從VMware的vSphere API

。谷歌爲它,你會發現在線文檔。

1

查看Apple的文檔。他們是國王。非常具有描述性,但有時長達數英里。一對夫婦從NSString類的例子:

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

我最喜歡在微軟的世界:SetProcessWorkingSetSize

8

我覺得很高興有其描述測試長時間的測試名稱。例如:

testMapWithOneEntryAllowsDifferentEntryPreservingFirst 
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst 

(這只是我的頭頂部的例子......你的想法雖然。)

1

在蘋果的郵件應用程序:

_synchronouslyTellServicesToRegisterAndSync() 

在應用程序,我寫道:

User.CanViewRestrictedItems() 

我的應用程序一個同事寫道:

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。 我在名爲findIntendedAliasedFromElementBasedOnCrazyJPARequirements的方法中得到了一個N​​ullPointerException異常!

2

只要沒有明顯簡潔的名稱和命名是理智的,長變量名稱不會打擾我。例如,在Kamaelia,有一個名爲類類型的:

threadedadaptivecommscomponent 
1

命名約定,我已經看到了,幾年前流利成爲成爲時尚

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項目以及頁面是否應顯示建議。