编写可读代码的艺术 4-分支循环
2022-03-17 本文已影响0人
DZQANN
判断语句
参数顺序
应当把更倾向于不断变化的数值放在左边,更像常量的放在右边
if (currentPage < MAX_PAGE) {
}
if (MAX_PAGE > currentPage)
第一种就会比第二种看起来舒服很多
if else的顺序
- 优先处理正逻辑
- 处理简单情况
- 处理有趣或可疑的情况
可能是我的理解有问题,简单和可疑的情况,一般都是负逻辑
public List<VO> findByCriteria(Criteria criteria) {
if (!isValid(criteria)) {
throw new RuntimeException();
}
}
就算我的方法名取得时isNotValid,那其实也是负逻辑了
三元运算符
三元运算符确实语法非常简单,但是理解起来肯定也不如if else方便。作者也说建议只在简单的判断逻辑中使用三元运算符
我自己写代码会把判断和两个表达式分成3行,感觉这样会方便很多
return exponent >= 0 ?
mantissa * (1 << exponent) :
mantissa / (1 << -expnent);
循环
do/while
这种其实我自己是坚决不会写的,而且我也不觉得这个语法有存在的必要。
for和while
其实我觉得这两个的区别就是数组和链表的区别
for循环更适合那种,给你一个全集,一个一个遍历的感觉。而while就是,你并不知道重点在哪里,你只知道到什么时候就差不多了,可以不用继续了
减少嵌套
大家经常提但总会人不断的写大括号。其实套路就两种嘛
①If(a) b else c一定可以写成if (a) b return c
②a b c都要抽成一个方法
其实不止是if和for,包括try catch finally,理论上来说每一个部分都只能是一个方法的调用,不要把实现逻辑放在代码块里