2008-10-17 4 views
6

Certains amis et collègues ont un petit concours de course pour trouver ou écrire les noms de classe/variable/propriété/méthode les plus longs possibles. Gardez à l'esprit, nous essayons d'être de bons garçons et filles et de garder la dénomination intelligible et concise, tout en expliquant ce que la chose fait par son nom.Noms de classe/variable/propriété/méthode très longs

Parfois, cela n'arrive tout simplement pas. Avez-vous couru à cela? J'aimerais juste voir ce qu'il y a dehors. (Peut-être que mes amis et moi ne sommes pas aussi fous que nous le pensons)

Note: Je ne cherche pas mauvais nommage. C'est déjà here. Je cherche bon nommer qui vient de prendre un peu de temps.

+1

32 caractères maximum, et nous vivons en 2008! –

+3

un nom énorme est probablement un mauvais nom, pour le simple fait que si vous avez besoin d'un nom énorme pour décrire ce qu'il fait alors il est probablement trop en faire;) – workmad3

+0

@ workmad3 Trop vrai! Ne pas pouvoir nommer une fonction correctement est généralement le symptôme d'un autre problème, c'est trop! –

Répondre

16

Ce n'est pas une classe nom mais une énumération, mais c'est beaucoup plus long:

VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther 

de l'API VMware vSphere. Google pour cela et vous trouverez la documentation en ligne.

+0

Certainement le nouveau gagnant. –

1

Consultez la documentation d'Apple. Ce sont des rois à ça. Très descriptif, mais parfois long miles. Quelques exemples de la classe NSString:

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

Mon préféré dans le monde Microsoft: SetProcessWorkingSetSize

8

Je trouve qu'il est agréable d'avoir des noms de tests longs qui décrivent le test. Par exemple:

testMapWithOneEntryAllowsDifferentEntryPreservingFirst 
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst 

(Ce ne sont que des exemples du haut de ma tête ... vous voyez l'idée bien.)

1

Dans l'application mail de pomme:

_synchronouslyTellServicesToRegisterAndSync() 

Dans un app je l'ai écrit:

User.CanViewRestrictedItems() 

je une application collègue a écrit:

Profile.DisplayMyDraftOrPendingProfile() 
Profile.DisplayMyApprovedProfile() 

Juste pour commencer.

nouvelle:

Un nom de contrainte de clé étrangère:

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

L'excellente bibliothèque GTK+ "souffre" de cette situation. Il a des fonctions très bien nommées, mais comme l'API principale est C et que GTK + est très orienté objet, il doit encoder les noms de classes dans le nom des fonctions. Le constructeur de la classe X est X_new(), et ainsi de suite. Cela conduit à des beaties tels que gtk_recent_chooser_widget_new_for_manager().

Je suis sûr qu'il y a encore plus de noms de fonctions là-dedans, c'était juste un que j'ai trouvé rapidement. :)

12

Ce n'est pas vraiment long, mais mon nom de variable favori était d'indiquer qu'un utilisateur avait choisi de recevoir des courriels.

User.IsSpammable

+1

Si vous n'êtes pas trop obsédé par les booléens commençant par "est", vous pourriez faire User.canSpam – Bemmu

4

Il y a quelques fois, j'ai eu un problème avec Hibernate. J'ai reçu une exception NullPointerException dans la méthode appelée findIntendedAliasedFromElementBasedOnCrazyJPARequirements!

2

Les noms de variables longs ne me dérangent pas tant qu'il n'y a pas de nom plus concis évident et que la dénomination est saine. Par exemple, dans Kamaelia, il y a un type de classe nommé ceci:

threadedadaptivecommscomponent 
1

Une convention de nommage que j'ai vu, des années avant couramment est devenu en vogue

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

public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor { 
    boolean ohYesItHas = false; 

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

    ... more methods... 
} 
+4

Il a dit qu'il ne cherchait pas de mauvais code. –

1
bool instrumentAreaDockWidgetVisibilityFollowsChildPresence; 
0

obtenir les js éléments qui seront récupérés et si la page doit afficher des recommandations. Oracle ne laisse personne jouer à ce jeu.

Questions connexes