公开
创建于

函数取名最忌讳"名不副实"

编辑时间

函数取名最忌讳的是"名不副实",举个例子,假如有个Cache类,里面有个函数判断key是否过期.

下面这个函数从函数字面意思看是判断key是否过期.

但是!!它居然在函数里面隐藏了一段特殊逻辑:如果过期则删除掉key

这个就是典型的"名不副实",这个是最忌讳的,会给后续的开发人员留下"巨坑"。

isExpired.java 444 Bytes
  • 有两种方式优化以上代码

    方式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;
     }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论