暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何写出可维护的 Java 代码

sg1234 2023-12-31
97

作为程序员,如何写出高质量可维护的代码,是一个老生常谈的话题,初级程序员可能是只要完成任务就行了,但当我们逐渐成为中高级程序员的时候,我们要考虑就不单单只是完成任务就行了,而更加要关注如果写出优雅可维护的代码,并且要保证系统的设计更加的合理。

1. 理解和遵循 Java 编码标准

任何一门语言都有其自己的特性,Java 也不例外,另外除了语言的自身特性以外,业内也是有一份通用的规范,在国内大家遵循的 Java 规范,自然是阿里前几年出的《阿里巴巴 Java 开发手册(泰山版)》,这份手册值得每个 Java 程序员熟读百遍,文末也给大家附上了获取指南,需要的自取。

2. 避免魔数

魔数(Magic Numbers)是指直接使用某个看似随机的数字,没有任何解释的数字。它们会使得代码难于理解和维护。应该使用有意义的变量或常量来替代这些数字。

// 不好的做法
double calculateArea() {
    return 3.14 * radius * radius;
}

// 好的做法
static final double PI = 3.14;

double calculateArea() {
    return PI * radius * radius;
}

相信大家在日常开发中,经常会使用到很多魔数,而且有时候还会在不同的文件和项目中使用到同一个魔数,强烈建议这种魔数采用常量或者配置的形式来进行处理,不然后期如果要发生变更,将会是一个痛苦的过程。

而且根据 1 中提到的《阿里巴巴 Java 开发手册》中也提到了,关于常量我们也要尽量按照功能进行分类,不能使用一个大而全的类来维护所有的常量。

图片

3. 编写可测试的代码

所谓编写可测试的代码,意思是说让我们多写单元测试。

不过说实话,这个道理虽然大家都知道,但是大家都很难执行,不过为了使代码易于维护,我们还是需要确保它可以正常运行,而不会引入任何错误。

所以编写单元测试就是一种很好的方式,因为它为我们的代码提供了一个安全网,确保在修改代码时不会打破任何东西。

除了编写单元测试之外,我们还可以善用一些插件和工具,特别是在当下 AI 加持的时代,我们可以让 AI 来帮我们生成单元测试代码,这就又回到了我们昨天的文章,提到的 Github Copilot 了,它就可以帮我们一键生成单元测试,如下所示。

图片

同样的在《阿里巴巴 Java 开发手册》中也描述了关于单元测试的部分,我们也需要遵守这些规则。

图片

4. 减少代码复杂性

另外为了写出可维护的代码,我们就要适当的降低代码的复杂度,尽可能地将复杂的问题简单化。

这一点往往也是最难的一点,因为如何将复杂的问题简单化是需要经验的,要将复杂的问题进行抽象,再结合适当的设计模式才能是代码更加的优雅。

我们要明白一个道理,代码写出来是给人看的,所以我们要写出人能看懂的代码,我见过很多在写代码的时候有很多风骚的写法,纯粹是为了炫技,毫无实用价值,还增加了阅读成本,这样的行为是不可取的。

此外我们写代码的时候,函数不应该超过20行,类不应该超过1000行。在方法内避免过度嵌套,如果一个方法需要嵌套太多层,那么应该将代码分解成多个方法。

5. 注释和文档

当代码无法自我解释的时候,适当添加注释是个好主意。

注释应该解释为什么需要这样写代码或者某个代码的背后含义,而不能仅仅是重复代码的行为。另一方面,为代码编写良好的文档,包括 Javadoc 注释、README 文件和 wiki 页面,会使得新同事或者别人更容易接手。

在做一些项目或者系统设计的时候,适当的设计文档也是必须的,包括系统涉及的上下游,以及系统关联的一些组件和中间件,以及底层存储模型的设计和是否有缓存等说明。

内部的设计文档不求面面俱到,但也要把关键点都写到,方便日后的查看和维护。

6. 使用版本控制

利用 Git 等版本控制工具可以记录代码的历史,并提供回滚错误更改的能力,这是确保代码易于维护的重要一步。

这一点相信现在大家都是这么做的,毕竟 Git 的版本控制,还是很基础的组件,如果谁还没有用起来,那只能说太 out 了,除了代码,其实我们的文档也是可以用 Git 版本控制管理起来的,这个就不多说了。

7. 总结

以上是一些关于如何编写可维护 Java 代码的建议,我们在日常开发中要学会灵活运用。

另外要记住,编程不仅仅是一门科学,也是一种艺术。

在追求代码完美的过程中,我们会学习到更多新的知识,也会找到更多的乐趣。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论