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

推荐订阅源

B
Blog RSS Feed
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
H
Help Net Security
Recorded Future
Recorded Future
The Register - Security
The Register - Security
F
Full Disclosure
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
Security Archives - TechRepublic
Security Archives - TechRepublic
Simon Willison's Weblog
Simon Willison's Weblog
Cisco Talos Blog
Cisco Talos Blog
I
InfoQ
T
Tenable Blog
T
Tor Project blog
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
博客园 - 叶小钗
B
Blog
V
V2EX
Jina AI
Jina AI
L
LangChain Blog
月光博客
月光博客
W
WeLiveSecurity
U
Unit 42
AWS News Blog
AWS News Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 聂微东
V
Visual Studio Blog
A
Arctic Wolf
T
Tailwind CSS Blog
The Cloudflare Blog
SecWiki News
SecWiki News
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Securelist
www.infosecurity-magazine.com
www.infosecurity-magazine.com
腾讯CDC
雷峰网
雷峰网

博客园 - 南郭先生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     }

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