我有一种从数据库中提取数据的方法,我希望它能得到这个:
五个条目的限制, 项目类型是简报, 需要处于活动状态(PublishDate< DateTime.Now)
所以我想把它命名为GetFiveActiveNewslettersByCreatedDate()
这对我来说似乎有点长。我在网站上找了一个很好的方法来命名这样的东西,你会怎么处理它?</ p>
答案 0 :(得分:12)
这样的事情呢?
public IEnumerable<Newsletter> GetActiveNewsletters(int maxRecords = 5)
{
// ...
}
前5名仍然是默认值,但它不再过于具体。
答案 1 :(得分:8)
我个人避免将“五”加入名称的原因是它可能意味着什么。
例如,如果以后在某些情况下需要10个新闻简报而不是5个?好吧,你要创建一个额外的方法GetTenActiveNewslettersByCreatedDate()
。现在,您有一个“设计模式”,后续开发人员将在需要20,50,100个简报时遵循这些模式。这是一个会腐烂的设计,你现在可以通过参数化五个来阻止它。
当然,这可能是YAGNI /投机的普遍性。如果5真的是某种神奇的,坚硬的,永远不会改变规则,那么你可能会小心翼翼地把它加入。我只是发现我后悔做了这么远的事情,而且往往更多。
答案 2 :(得分:5)
我建议将其重命名为:GetNewsletters(int recordCount=5)
新闻简报的数量将是该方法的参数。
其余部分可以在///Summary
中假设和描述。
答案 3 :(得分:4)
为了避免这种特定的命名,我会考虑使该方法具有通用性。类似的东西:
GetNewsLetters(int amount, bool onlyActive, SortOrder orderBy)
答案 4 :(得分:2)
将其命名为任何开发人员都明白该方法的作用。自我评论代码是王道。如果你的方法名称太长,你可能在其中做了太多不同的事情,并且会成为重构的候选者。
至于你的具体例子,我对你给出的名字没有疑问。
答案 5 :(得分:1)
我会添加参数化方法,比如
GerEntries(T typeofEntity, DateTime date, int maxNumber)
自然是带注释的文档方法