惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
J
Java Code Geeks
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
B
Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
美团技术团队
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
N
Netflix TechBlog - Medium
C
Check Point Blog
Recent Announcements
Recent Announcements
博客园 - Franky
博客园 - 叶小钗
T
Tailwind CSS Blog

博客园 - 南郭先生kaka

待处理数据的两种模型 nginx重启无法找到PId的解决办法 Wiki版产品需求---产品需求文档到底是谁的?产品到底是谁的? 为什么说private方法是有罪的 XML2JSON 的【net.sf.json.JSONException: nu.xom.ParsingException must be followed by either attribute specifications, ">" or "/>"】问题解决办法 继承的第一原则 致那些不甘寂寞的人 上传File时,浏览器总是添加<pre>的解决办法 使用XSLT转换XML2XML Java 模拟 Http Post WITH AS SQL语句的用法 java.lang.NoClassDefFoundError错误 Spring 中Quartz配置数据库化 FactoryBean在XML中的依赖注入方法 Camel FTP中文目录解决办法 配置CentOS6.3 NFS Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier) 重读《目标》---目标 重读《目标》---序
【Code Style】多余判断
南郭先生kaka · 2013-04-03 · via 博客园 - 南郭先生kaka

           代码中经常充斥着很多多余的判断,不仅仅是增加了代码量,而且还有可能引入bug,同时也增加了理解的时间。

 1     public static String get(String key){
 2         Object returnObj = prop.getProperty(key);
 3 
 4         if (returnObj != null) {
 5             return (String)returnObj;
 6         }
 7         else { 
 8             return null;
 9         }
10      }

      上面的代码一共10行,有一个if else的判断,修改这个代码可以分为两个阶段,第一个阶段是使用卫语句(guard condition) ,这样的话,直接就没有else,这样看起来更加直观。

 1     public static String get(String key){
 2         Object returnObj = prop.getProperty(key);
 3 
 4         if (returnObj != null) {
 5             return (String)returnObj;
 6         }
 7         
 8         return null;
 9         
10      }

    下一步改进来说,就是尽量少使用 非语句 !,不用思维上的转折,理解起来也不容易出现误解。(由原来的!= 变化为 ==)

public static String get(String key){
        Object returnObj = prop.getProperty(key);

        if (returnObj == null) {
            return null;
        }
        return (String)returnObj;
        
     }

    当然终极的代码就是一语抵千行

1        public static String get(String key) {
2         return (String) prop.getProperty(key);
3     }

   什么话都不用说了,大家也都明白了,前面那些都是废话,写了也都是白写,不如这最后的一句话,清晰明了,简单易懂。