Действительно длинные имена классов / переменных / свойств / методов

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

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

Примечание. Я не ищу плохого именования. Это уже здесь. Я ищу хорошее название, которое стало немного длинным.


person Community    schedule 17.10.2008    source источник
comment
Oracle не позволяет играть в эту игру. Максимум 32 символа по-прежнему, и мы живем в 2008 году!   -  person Steve McLeod    schedule 17.10.2008
comment
огромное имя, вероятно, плохое имя из-за того простого факта, что если вам нужно большое имя для описания того, что оно делает, то оно, скорее всего, делает слишком много;)   -  person workmad3    schedule 17.10.2008
comment
@ workmad3 Слишком верно! Неспособность правильно назвать функцию обычно является признаком другой проблемы, это слишком много!   -  person Zachary Yates    schedule 17.10.2008
comment
Длинные имена классов могут указывать на слабую связь, нарушая функциональность отдельных классов. например Имея рабочие классы для подклассов ... n ... модели.   -  person Michael Bavin    schedule 04.11.2010


Ответы (10)


Это не имя класса, а перечисление, но оно намного длиннее:

VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther

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

person Community    schedule 08.09.2010

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

User.IsSpammable

person denny    schedule 17.10.2008
comment
Если вы не слишком увлечены логическими значениями, начинающимися с is, вы можете сделать User.canSpam - person Bemmu; 29.01.2010

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

testMapWithOneEntryAllowsDifferentEntryPreservingFirst
testMapWithOneEntryAllowsDuplicateEntryOverwritingFirst

(Это просто примеры из моей головы ... вы поняли идею.)

person Jon Skeet    schedule 17.10.2008

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

person Romain Linsolas    schedule 17.10.2008

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

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

person unwind    schedule 17.10.2008

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

threadedadaptivecommscomponent
person Community    schedule 26.10.2008

Соглашение об именах, которое я видел за много лет до того, как свободное владение языком стало в моде

public DataSet SelectAllUsersWhereDobIsGreaterThan1980AndIsMaleOrderByNameAndAge()
person Community    schedule 28.07.2009

Ознакомьтесь с документацией Apple. В этом они короли. Очень наглядно, но иногда на много миль. Пара примеров из класса NSString:

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

Мой фаворит в мире Microsoft: SetProcessWorkingSetSize

person TheSmurf    schedule 17.10.2008

В почтовом приложении Apple:

_synchronouslyTellServicesToRegisterAndSync()

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

User.CanViewRestrictedItems()

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

Profile.DisplayMyDraftOrPendingProfile()
Profile.DisplayMyApprovedProfile()

Просто для начала.

новое:

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

constraint ReportCompanyReportTemplateIDVersionID_ReportTemplateVersionReportTemplateIDVersionIDFk foreign key (ReportTemplateID, VersionID) references customer_ReportTemplateVersion (ReportTemplateID, VersionID)
person Zachary Yates    schedule 17.10.2008

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

person Community    schedule 20.04.2012