Называть сложные методы - PullRequest
7 голосов
/ 12 марта 2012

У меня есть метод для извлечения данных из базы данных, и я хочу, чтобы он получил это:

Лимит пяти записей, Тип товара - информационный бюллетень, Должен быть активным (PublishDate

Так что я думаю назвать его GetFiveActiveNewslettersByCreatedDate ()

Это кажется мне немного длинным. Я искал на сайте хороший способ назвать такие вещи, как бы вы справились с этим?

Ответы [ 6 ]

12 голосов
/ 12 марта 2012

Как насчет чего-то подобного?

public IEnumerable<Newsletter> GetActiveNewsletters(int maxRecords = 5) 
{ 
    // ...
}

Топ-5 по-прежнему по умолчанию, но больше не слишком конкретен.

8 голосов
/ 12 марта 2012

Причина, по которой я бы не стал вставлять «пять» в имя, заключается в том, что это может означать в дальнейшем.

Например, что если позднее в некоторых сценариях возникнет потребность в 10 информационных бюллетенях вместо 5?Ну, вы бы создали дополнительный метод GetTenActiveNewslettersByCreatedDate().И теперь у вас есть «шаблон дизайна», которому последующие разработчики будут следовать, когда потребуется 20, 50, 100 информационных бюллетеней.Это конструкция, которая сгниет, и вы можете предотвратить ее, параметризовав пять.

Конечно, это может быть ЯГНИ / умозрительная общность.Если 5 на самом деле является своего рода магией, очень быстрой и никогда не изменит правила, тогда вы можете осторожно испечь ее. Я просто обнаружил, что сожалел о том, что делал и видел такие вещи, гораздо чаще, чем нет.

5 голосов
/ 12 марта 2012

Я бы порекомендовал переименовать его в: GetNewsletters(int recordCount=5) Количество информационных бюллетеней будет параметром для этого метода.

Остальное можно предположить и описать в ///Summary.

4 голосов
/ 12 марта 2012

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

GetNewsLetters(int amount, bool onlyActive, SortOrder orderBy)
2 голосов
/ 12 марта 2012

Назовите его так, чтобы любому разработчику было понятно, что делает этот метод.Сам комментирующий код - король.Если имя вашего метода слишком длинное, вы, вероятно, делаете слишком много разных вещей внутри него и будете кандидатом на рефакторинг.

Что касается вашего конкретного примера, у меня нет проблем с именем, которое вы дали.

1 голос
/ 12 марта 2012

Я бы добавил параметризованный метод, как

GerEntries(T typeofEntity, DateTime date, int maxNumber)

И естественный метод документа с комментариями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...