如何提高 Java 代码的可重用性

译者 | 刘汪洋
审校 | 重楼
对于软件开发者而言 , 编写可重用的代码是一项基本而重要的技能 。每位工程师都应掌握如何尽可能地提高代码的复用性 。当前,一些开发人员可能会认为微服务的本质是小而高效,因此他们无需编写高质量代码 。然而,即便是微服务,在变得庞大时 , 阅读和理解代码的时间成本也会迅速增加至编写时的十倍 。

如何提高 Java 代码的可重用性

文章插图
代码一开始编写得不佳,将会大幅增加修复 bug 或添加新功能的工作量 。在一些极端情况下,我见证过团队因代码质量问题而放弃原有代码,重新编写 。这不仅浪费了宝贵时间,还可能导致开发人员承担责任并失去工作 。
本文将介绍经过实践验证的提高JAVA 中代码可重用性的八条指导原则 。
Java 编程中编写可重用代码的八大指导原则
  1. 制定编码规范
  2. 记录 API 文档
  3. 遵守代码命名规范
  4. 提高代码内聚性
  5. 代码解耦
  6. 遵循 SOLID 原则
  7. 合理运用设计模式
  8. 避免重复造轮子
制定编码规范编写可重用代码的首要步骤是与团队一同确立代码规范 。如果对编码规范不能达成共识,代码很快就会变得混乱不堪 。如果团队成员之间意见不统一,关于代码实现的无效讨论也会频繁发生 。同时,你需要确立一个基础的代码设计框架,以解决软件需要解决的问题 。
在制定了标准和代码设计框架之后,接下来应当明确代码指导原则 。
常见的指导原则包括:
  • 代码命名规范
  • 类和方法的行数限制
  • 异常处理方式
  • 包结构设计
  • 编程语言及其版本
  • 所使用的框架、工具和库
  • 代码测试标准
  • 代码结构层次(如控制器、服务、存储库、领域等)
一旦团队就这些规范达成共识,每个成员都应对代码审查负责,以确保编写出高质量、可重用的代码 。如果没有共识,写出高质量且可重用的代码几乎不可能 。
记录 API 文档当创建服务并以 API 形式公开时 , 应该详细记录 API 信息,以便新加入的开发人员能够轻松理解和使用 。
API 在微服务架构中扮演着重要角色 。因此,对你的项目不太熟悉的其他团队成员必须能够通过阅读 API 文档来理解其功能 。如果 API 文档记录不当,代码的重复编写风险会增加 。新开发人员可能会无意中创建一个和现有功能重复的方法 。
【如何提高 Java 代码的可重用性】因此,精确记录 API 至关重要 。但在代码中过度使用文档可能并无益处 。应该只记录 API 中的关键信息,如业务操作的解释、参数、返回值对象等 。
遵守代码命名规范简洁且具有描述性的代码命名总是优于晦涩难懂的缩写 。浏览不熟悉的代码库时,我发现缩写往往难以让人立即理解其含义 。
因此 , 相较于使用像Ctr这样的缩写,直接命名为Customer更为明晰和有意义 。Ctr可能代表了合同(contract)、控制(control)、客户(customer)等多种含义,使人难以确定其准确意图 。
此外,要遵循你所使用编程语言的命名规范 。以 Java 为例 , 它有 JavaBeans 命名规范,这对每个 Java 开发者来说都是基本常识 。以下是 Java 中类、方法、变量和包的命名方式:
  • 类名采用 PascalCase(帕斯卡命名法):如CustomerContract
  • 方法和变量采用 camelCase(驼峰命名法):如customerContract
  • 包名全部小写:如service
提高代码内聚性内聚的代码应该专注于_做好一件事_ 。虽然这是一个简单的概念,但即便是经验丰富的开发人员也常常忽视它 。这样,他们就会创建出所谓的_超级复杂类_ , 即一个承担了过多职责的类 , 有时也被称为_全能类_ 。
要实现高内聚的代码 , 关键是学会拆分代码,确保每个类和方法专注于单一职责 。比如 , 如果你创建了一个名为saveCustomer的方法,它应当只负责一个动作:保存客户信息 。它不应该同时负责更新和删除客户信息 。


推荐阅读