Nomi di classe / variabili / proprietà / metodo davvero lunghi
-
03-07-2019 - |
Domanda
Alcuni miei amici e colleghi hanno un piccolo concorso per trovare o scrivere i nomi di classe / variabile / proprietà / metodo più lunghi possibili. Tieni presente che cerchiamo di essere buoni ragazzi e ragazze e mantenere la denominazione intelligibile e concisa, pur spiegando cosa fa la cosa tramite il suo nome.
A volte però non succede. Ti sei imbattuto in questo? Vorrei solo vedere cosa c'è là fuori. (Forse io e i miei amici non siamo matti come pensiamo)
Nota: non cerco la cattiva denominazione. Questo è già qui . Sto cercando una buona denominazione che è appena diventata un po 'lunga.
Soluzione
Questo non è un nome di classe ma un enum, ma è molto più lungo:
VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther
dall'API di VMware vSphere. Google per questo e troverai la documentazione online.
Altri suggerimenti
Non è molto lungo ma il mio nome di variabile preferito è mai stato per indicare che un utente aveva scelto di ricevere e-mail.
User.IsSpammable
Trovo bello avere nomi di test lunghi che descrivono il test. Ad esempio:
testMapWithOneEntryAllowsDifferentEntryPreservingFirst
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst
(Questi sono solo esempi dalla parte superiore della mia testa ... hai comunque l'idea.)
org.aspectj.weaver.patterns;
public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor {
boolean ohYesItHas = false;
public boolean wellHasItThen/*?*/() {
return ohYesItHas;
}
... more methods...
}
Alcune volte fa, ho avuto un problema con Hibernate. Ho ottenuto una NullPointerException nel metodo chiamato findIntendedAliasedFromElementBasedOnCrazyJPARequirements!
protected virtual OcrBarcodeSymbologies GetSupportedBarcodeSymbologies() { }
L'eccellente GTK + libreria " soffre " da questa. Ha funzioni con un nome molto preciso, ma poiché l'API principale è C e GTK + è molto orientata agli oggetti, deve codificare i nomi delle classi nel nome delle funzioni. Il costruttore per la classe X è X_new () e così via. Questo porta a benefici come gtk_recent_chooser_widget_new_for_manager () .
Sono sicuro che ci sono nomi di funzioni ancora più lunghi, questo è stato solo uno che ho trovato rapidamente. :)
I nomi di variabili lunghe non mi infastidiscono finché non c'è un nome più conciso e ovvio e la denominazione è sana. Ad esempio, in Kamaelia, c'è un tipo di classe chiamato questo:
threadedadaptivecommscomponent
Una convenzione di denominazione che ho visto, anni prima che i fluenti diventassero di moda
public DataSet SelectAllUsersWhereDobIsGreaterThan1980AndIsMaleOrderByNameAndAge()
Consulta la documentazione di Apple. Sono re a quello. Molto descrittivo, ma a volte miglia. Un paio di esempi dalla classe NSString:
NSString.completePathInfoString:caseSensitive:matchesToArray:filterType
NSString.stringByAddingPercentEscapesUsingEncoding
Il mio preferito nel mondo Microsoft: SetProcessWorkingSetSize
bool instrumentAreaDockWidgetVisibilityFollowsChildPresence;
Nell'app Apple Mail:
_synchronouslyTellServicesToRegisterAndSync()
In un'app ho scritto:
User.CanViewRestrictedItems()
Ho un'app che un collega ha scritto:
Profile.DisplayMyDraftOrPendingProfile()
Profile.DisplayMyApprovedProfile()
Solo per iniziare.
nuova:
Nome di un vincolo di chiave esterna:
constraint ReportCompanyReportTemplateIDVersionID_ReportTemplateVersionReportTemplateIDVersionIDFk foreign key (ReportTemplateID, VersionID) references customer_ReportTemplateVersion (ReportTemplateID, VersionID)
ottieni gli js
che verranno recuperati e se la pagina dovrebbe mostrare consigli.