isExpired.java
444 Bytes
公开
创建于
函数取名最忌讳"名不副实"
编辑时间函数取名最忌讳的是"名不副实"
,举个例子,假如有个Cache类,里面有个函数判断key是否过期.
下面这个函数从函数字面意思看是判断key是否过期.
但是!!它居然在函数里面隐藏了一段特殊逻辑:如果过期则删除掉key
。
这个就是典型的"名不副实",这个是最忌讳的,会给后续的开发人员留下"巨坑"。
-
有两种方式优化以上代码
方式1,将隐藏逻辑去掉
public boolean isExpired(String key) { // 当前时间戳 long curTimestamp = DateUtils.nowUnixTime(); // 获取key的存入时间戳 long storeTimestamp = getStoreTimestamp(key); if (curTimestamp - storeTimestamp > MAX_EXPIRE_SECONDS) { return true; } return false; }
方式2,改变函数名字
public int deleteIfExpired(String key) { // 当前时间戳 long curTimestamp = DateUtils.nowUnixTime(); // 获取key的存入时间戳 long storeTimestamp = getStoreTimestamp(key); if (curTimestamp - storeTimestamp > MAX_EXPIRE_SECONDS) { return delete(key); } return 0; }
请
注册
或者
登录
后发表评论