短路式编程(Fast-Break)

目标 :优化代码结构中的嵌套层次,减少代码缩进,提升代码可以性,可理解性;

现实情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public boolean checkSensitiveWord(String targetWord) {
String sensitiveWordKey = "developer.sensitiveword";
if (ObjectUtil.isNotEmpty(targetWord)) {
if (ObjectUtil.isNotEmpty(sensitiveWordKey)) {
List<String> wordList = redisService.getList(sensitiveWordKey);
if (wordList != null && wordList.size() > 0) {
for (String word : wordList) {
if (targetWord.equals(word)) {
return true;
}
}
}
}
}
return false;
}

原因 :正向思维,编码过程中,一直在思索正常的流程情况是什么样的。

优化后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public boolean checkSensitiveWord(String targetWord) {

if(StringUtils.isEmpty(targetWord)) {
return false;
}

if(StringUtils.isEmpty(sensitiveWordKey)) {
return false;
}

String sensitiveWordKey = "developer.sensitiveword";
List<String> result = redisService.getList(sensitiveWordKey);
if(null == result || result.isEmpty()) {
return false;
}

return result.contains(targetWord);
}

方式 :逆向思维,编码过程中逐步排除异常情况,并迅速给出反馈,中断流程。