java函数优雅之道(上)

本文探讨了函数式编程在提升Java代码优雅性方面的作用,建议将超大函数拆分,保持函数短小且专注单一功能。强调同一函数内代码块应保持一致层次,封装相同功能的代码为通用工具函数,以及封装获取参数值的函数以增强可读性和可维护性。
摘要由CSDN通过智能技术生成
随着软件项目代码的日积月累,系统维护成本变得越来越高,是所有软件团队面临的共同问题。持续地优化代码,提高代码的质量,是提升系统生命力的有效手段之一。软件系统思维有句话“Less coding, more thinking(少编码、多思考)”,也有这么一句俚语“Think more, code less(思考越多,编码越少)”。所以,我们在编码中多思考多总结,努力提升自己的编码水平,才能编写出更优雅、更高质、更高效的代码。
本文总结了一套与Java函数相关的编码规则,旨在给广大Java程序员一些编码建议,有助于大家编写出更优雅、更高质、更高效的代码。这套编码规则,通过在高德采集部门的实践,已经取得了不错的成效。
使用通用工具函数
案例一
现象描述:
不完善的写法:
[Java] 纯文本查看 复制代码
?
1
thisName != null && thisName.equals(name);
更完善的写法:
[Java] 纯文本查看 复制代码
?
1
(thisName == name) || (thisName != null && thisName.equals(name));
建议方案:
[Java] 纯文本查看 复制代码
?
1
Objects.equals(name, thisName);
案例二
现象描述:
[Java] 纯文本查看 复制代码
?
1
!(list == null || list.isEmpty());
建议方案
[Java] 纯文本查看 复制代码
?
1
2
import org.apache.commons.collections4.CollectionUtils;
CollectionUtils.isNotEmpty(list);
主要收益
  • 函数式编程,业务代码减少,逻辑一目了然;
  • 通用工具函数,逻辑考虑周全,出问题概率低。

拆分超大函数

当一个函数超过80行后,就属于超大函数,需要进行拆分。
案例一:每一个代码块都可以封装为一个函
每一个代码块必然有一个注释,用于解释这个代码块的功能。
如果代码块前方有一行注释,就是在提醒你——可以将这段代码替换成一个函数,而且可以在注释的基础上给这个函数命名。如果函数有一个描述恰当的名字,就不需要去看内部代码究竟是如何实现的。
现象描述:
[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
// 每日生活函数
public void liveDaily() {
    // 吃饭
    // 吃饭相关代码几十行
 
    // 编码
    // 编码相关代码几十行
 
    // 睡觉
    // 睡觉相关代码几十行
}
建议方案
[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 每日生活函数
public void liveDaily() {
    // 吃饭
    eat();
 
    // 编码
    code();
 
    // 睡觉
    sleep();
}
 
// 吃饭函数
private void
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值