优雅之道
案例一 现象描述: 不完善的写法: thisName != null && thisName.equals(name); 更完善的写法: (thisName == name) || (thisName != null && thisName.equals(name)); 建议方案: Objects.equals(name, thisName); 案例二 现象描述: !(list == null || list.isEmpty()); 建议方案: import org.apache.commons.collections4.CollectionUtils; CollectionUtils.isNotEmpty(list); 主要收益 函数式编程,业务代码减少,逻辑一目了然; 通用工具函数,逻辑考虑周全,出问题概率低。 拆分超大函数 当一个函数超过80行后,就属于超大函数,需要进行拆分。案例一:每一个代码块都可以封装为一个函 每一个代码块必然有一个注释,用于解释这个代码块的功能。 如果代码块前方有一行注释,就是在提醒你——可以将这段代码替换成一个函数,而且可以在注释的基础上给这个函数命名。如果函数有一个描述恰当的名字,就不需要去看内部代码究竟是如何实现的。 现象描述: // 每日生活函数 public void liveDaily() { // 吃饭 // 吃饭相关代码几十行 //