【发布时间】:2015-06-01 15:41:46
【问题描述】:
我们在应用中有这样的用例:
If page visitor is a crawler, then redirect him to home page.
这是我们开发的两种在代码中实现的方法:
if (isPageVisitorACrawler(visitor)) {
return redirectToHome();
}
if (shouldRedirectVisitorToHome(visitor)) {
return redirectToHome();
}
好的。所以我相信第一个版本信息量更大,但其他人说第二个版本在适应方面更好。这意味着如果我们必须在用户必须被重定向到家时添加另一个条件,那么使用第二个版本会更容易和更清晰。
if (isPageVisitorACrawler(visitor) || isPageVisitorBanned(visitor)) {
return redirectToHome();
}
if (shouldRedirectVisitorToHome(visitor)) {
return redirectToHome();
}
在这个级别上,秒仍然是一样的。
我的问题是,我们什么时候应该将这些函数包装成更大(更通用)的函数,或者是否应该这样做?
我记得 Bob 叔叔说过我们不应该在一个函数中混合抽象级别。我相信,函数应该只调用比其抽象级别低一级的函数,而shouldRedirectVisitorToHome 似乎在同一级别,而不是更低。
我希望我说清楚了。
【问题讨论】:
标签: function naming-conventions naming software-design