
在应用程序中,有 10%-30% 的自定义代码是僵尸代码,可以直接删除。消除僵尸代码可以增强应用程序的整体性能和可维护性。
时间吸血鬼(名词):一种服务或应用程序,会以异常缓慢的速度进行预热和更新,从而浪费工程师的时间。

您需要赶在截止日期之前完成项目,于是您打开了应用程序,开始工作。应用程序提示您,在打开之前需要先更新。根据以往的经验,您要浪费半个小时等待这只时间吸血鬼准备就绪。
糟糕的代码!您现在没有时间更新。
好代码!您可以在休息室玩 20 分钟桌上足球。
糟糕的代码!您的考核依据是项目的完成情况,而不是桌上足球的水平。
在工作时间愧疚地享受桌上足球或乒乓球的乐趣也是一种降低生产力的原因。
一举清除僵尸代码
问题是什么?时间吸血鬼吸走的是您的时间,而不是您的血液,因为很多 Java 应用程序已经变得过于臃肿。根据 Azul 的研究和与客户的交谈,在应用程序中,有 10%-30% 的自定义代码是僵尸代码,可以直接删除。多年来,经过组织内众多人员的修改,代码已经发生变化,而新人要么不敢删除代码,要么没有时间调查研究。
随着时间的推移,他们会做出改变。也许他们更换了库。现在他们需要从 Java 11 升级到 21。新人加入组织,然后离开。久而久之,除非他们非常勤奋,否则代码会不断增加。他们不得不维护这些代码,但无法从中获得任何好处。他们可能有一些旧的 XML 处理代码,但他们不再使用那些 XML 了。他们必须弄清楚这些 API 发生了哪些变化,以及如何做才有可能进行升级。如果能够减少不在生产环境中运行的代码量,就能减少每个人的工作量。
此外,删除僵尸代码也会让人感到无比满足。
Java 成为了其自身成功的牺牲品。它向后兼容。它有许多大型老旧应用程序被企业长期使用。应用程序运行的时间越长(即使是成功运行),就越有可能拥有不再需要的代码。
老旧、未使用的代码会增加添加新功能的难度,因为开发人员必须弄清这些代码的作用、对其进行操作、检查依赖关系,并做出更改。除非……如果他们根本不需要这些代码呢?或者,即使他们只能移除一半的代码,也会使未来的维护工作变得更加轻松。
要了解更多信息,请观看点播网络研讨会:您的僵尸代码是时间吸血鬼。该网络研讨会由 Azul 云解决方案产品管理高级总监 Erik Costlow,以及软件工程师、Java Champion 称号获得者兼撰稿人 Trisha Gee 主持。
在此次网络研讨会中,您将学习如何:
- 识别隐藏的未使用代码和死代码:了解如何监控不同环境中的 JVM,以检测未使用的类、方法和模块。
- 优化开发效率:探索移除不必要代码的技术,使开发过程更顺畅、更快速。
- 提高应用程序性能:了解消除未使用代码和死代码如何增强应用程序的整体性能和可维护性。
Azul Code Inventory 可以帮助移除僵尸代码
Azul Code Inventory® 是 Azul Intelligence Cloud 的一项服务,它是唯一能够对企业所有 Java 工作负载在生产环境中所运行的代码进行精确编目的解决方案。它减少了维护和测试未使用代码的时间和负担,显著提高了开发人员的生产力,并节约了成本。Code Inventory 会从 Java 虚拟机 (JVM) 中收集和汇总详细信息,以识别随着时间的推移,哪些代码会在生产环境中实际运行。它提供了高度准确、强有力的信号,使人们能够自信地确定和优先移除未使用的代码。它有助于减少杂乱无章,使团队只需处理活动代码,从而降低维护工作量并提高开发速度。
12 月,Azul Intelligence Cloud 荣获 InfoWorld 年度分析解决方案技术奖。引用 InfoWorld 评委的部分说法:“Azul Intelligence Cloud……就像一个智能助手,可以观察 Java 程序的工作方式,并提出改进建议。这是一种全新的、令人兴奋的 Java 程序优化方法,它可以利用实时数据做出明智的决策。”

Gradle Devlocity 可以帮助自动执行任务,以提高生产力
Devlocity 是 Gradle 的开发人员生产力工具。它允许开发人员查看所有本地构建的结果。他们可以看到构建何时失败,以及何时通过所有测试。它可以显示构建中使用的所有依赖项、哪些依赖项是必需的,以及哪些版本存在不同。它甚至还能显示正在使用的库(如 Log 4j)的版本。
团队可以将它与 Code Inventory 等服务结合使用,以确定是否需要这些应用程序和组件。
