Ответ 1
IsRetrievable()
Я думаю, что метод, возвращающий логическое значение, должен быть назван да-без вопросов.
У меня есть интерфейс в С#, который помогает извлекать данные из пользовательского архива на сервере. Интерфейс выглядит так:
public interface IRetrieveData
{
bool OkToRetrieve(SomeData data); // Method in question...
bool RetrieveToLocal(SomeData data);
}
Этот интерфейс реализуется клиентами, которые извлекают данные в локальную базу данных. Существуют разные варианты клиентов, которые имеют доступ к данным друг друга. Таким образом, когда компонент обработки вызывает IRetrieveData.OkToRetrieve
непосредственно перед фактическим извлечением, вызов переходит к клиентскому коду, где принимается решение о том, следует ли получать данные или нет.
В этот момент клиент может вернуть значение false, и этот фрагмент данных пропускается или вернуть значение true, а компонент обработки вызывает RetrieveToLocal
и отправляет данные клиенту, который затем обрабатывает их.
Я не совсем понимаю, переименовать ли метод OkToRetrieve
в Retrieve
или CanRetrieve
или оставить его в OkToRetrieve
.
У кого-нибудь есть предложения?
IsRetrievable()
Я думаю, что метод, возвращающий логическое значение, должен быть назван да-без вопросов.
Allways называют логические методы с именами, похожими на вопросы, на которые можно ответить Да или Нет.
В вашем случае CanRetrieve будет хорошим именем (просто для использования вашего собственного предложения).
Как использовать префикс "должен"?
ShouldRetrieve(SomeData data);
Методы означают действие. Поэтому я предпочитаю имена методов, начинающиеся с глагола. Как насчет?
CheckIsRetrievable(SomeData data)
В этом конкретном случае я бы назвал его:
public bool IsReady (SomeData)
Потому что это более ясно демонстрирует, что произойдет, как только это вернет true
.
Зависит от вашего прецедента. Мне нравится префикс их словами типа "is", "does" или "Can":
IsSomePropertySoAndSo
, DoesNounSupportFeature
и в качестве примера CanVerb
CanRetrieve отлично звучит для меня. Я видел стержень Can, используемый в API Microsoft. Единственный реальный вариант IMO IsRetRievable (от Aziz), который почему-то кажется слишком лингвистически искаженным!
если вы делаете больше проверок и isRetrievable() не подходит, вы можете использовать:
IsValid()
Я бы предпочел isOKToRetrieve или isRetrieveOK над вариантами без "есть" в соответствии с соглашением о том, что функции и методы должны быть глаголами.
MayRetrieve()
может быть лучшим именем, если результат определяется разрешением пользователя/доступом.
IsRetrievable()
является более двусмысленным, что может быть более уместным, если есть другие соображения в дополнение к разрешению или иным образом.
В соглашениях об именах написано, что имя метода должно быть глаголом
Как правило, методы/функции указывают действия, поэтому они должны начинаться с глаголов. например, проверить, получить, сделать и т.д.
Общепринятым соглашением по именованию для логических переменных является добавление к ним префиксов с помощью вспомогательных глаголов, например is, has, will, can
Я бы подумал, что комбинация двух конвенций приведет к довольно хорошей, проницательной схеме. Так что getIsRetreivable() или checkIsRetrievable() выглядели бы мне очень хорошо.