【发布时间】:2019-11-27 12:10:17
【问题描述】:
我们的代码有一个方法whereContractEndIsAfterOrEqualDate(),我不太喜欢“AfterOrEqualDate”部分,因为它太长了。
这些方法有更好的名称吗?
Laravel PHP 框架有同名的验证器:https://laravel.com/docs/5.5/validation#rule-after-or-equal
【问题讨论】:
标签: naming
我们的代码有一个方法whereContractEndIsAfterOrEqualDate(),我不太喜欢“AfterOrEqualDate”部分,因为它太长了。
这些方法有更好的名称吗?
Laravel PHP 框架有同名的验证器:https://laravel.com/docs/5.5/validation#rule-after-or-equal
【问题讨论】:
标签: naming
如果这是一个布尔方法,我更喜欢更逻辑/语义的方式来表达这个控件的真实行为,比如isContractDateExpired()。
通过这种方法,您正在修复方法的名称,以从对象上下文本身揭示它的意图。从上层的角度来看,访问和调用这个对象可能并不重要,声明如何检查日期是否早于或不等于日期可能并不重要。这种方法使我们的对象更受领域驱动和更自主。
【讨论】:
怎么样:
.contractValid()
.contractExpired()
?
【讨论】:
!beforeDate() 可能更干净
【讨论】: