是否有任何工具可以检测不再使用的代码/功能?

2024-03-09

我们有许多应用程序正在运行(考虑所有应用程序都在 Java 平台上运行),我们需要检查过去(例如 3 个月)使用了哪些应用程序,以及在这些活动应用程序中,哪些部分/功能(以及使用频率)仍在使用中。那可能吗?

这里的目标是检测不再与业务相关的应用程序或功能并将其删除,以便我们最终需要维护和监控的代码更少。

有没有什么工具可以帮助我们实现这一目标?


我们确实使用敏捷方法,因此当新应用程序投入生产时,它只具有对业务重要的功能,但有时该应用程序的某些功能会过期(由于不同的原因),因此我们希望有一种方法来识别那。


即使在生产环境中,至少有两个工具可以在您的应用程序中部署并收集一些统计数据:

  1. AspectJ http://www.eclipse.org/aspectj/- 编织所有类并以某种方式记录每个方法的执行。

  2. JaCoCo http://www.eclemma.org/jacoco/trunk/- 本质上做同样的事情,但在 Java 代理的帮助下自动完成。执行的方法/分支(实际上,这是一个代码覆盖工具)保存在文件中以供将来处理。应该很容易解决你的问题。

这两种方法都应该适用于任何 JVM 语言(我看到jruby /questions/tagged/jruby在你的问题中),因为它们在字节码级别上工作。我曾经在 Selenium 测试运行期间使用 JaCoCo 来测量代码覆盖率(想想:执行了哪些方法/分支)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有任何工具可以检测不再使用的代码/功能? 的相关文章

随机推荐

  • 如何在 VB 中使用 Directory.GetFiles?

    我基本上遵循 MS 的示例 以下是示例 Imports System Imports System IO Public Class Test Public Shared Sub Main Try Only get files that be
  • Base64:空间使用量最坏的可能增加是多少?

    如果服务器收到 Base64 字符串并希望在转换之前检查其长度 则假设它希望始终允许最终字节数组为 16KB 当转换为 Base64 字符串 假设每个字符一个字节 时 16KB 字节数组可能会变成多大 Base64 将每组三个字节编码为四个
  • 如何在 .NET Core 中以编程方式从 nuget 下载 nupkg 包?

    在过去的 NET Framework 中 我使用此示例以编程方式使用 nuget 以编程方式玩转包 http blog nuget org 20130520 Play with packages html NET Core 是否有等效的源
  • 删除大文本文件中的所有重复项

    我真的被这个问题难住了 因此我已经停止工作一段时间了 我处理的数据量非常大 我每周都会收到大约 200GB 的 txt 数据 数据范围最多可达 5 亿行 其中很多都是重复的 我猜只有 20GB 是独一无二的 我制作了几个自定义程序 包括哈希
  • 区间范围树数据结构C++

    我有一个要求 我必须根据某些属性值更新图形前端的颜色 属性值有不同的范围 比如说 30到 45 60到 80等等 所以 我需要一个数据结构来存储这些范围 预填充它们 并且当我确定该点时 我想知道该点在 O 1 时间或 O 1 时间内落在的范
  • 如何将列数据复制到另一个表中,并且两个表上都存在公共列数据?

    我想将两列的数据复制到另一个有很多列的表中 并且两个表上都有一个公共列 这是我的表格 Table1 身份证 第 1 列 列2 1 13 12 2 8 3 3 7 10 Table2 身份证 第 1 列 列2 第 3 栏 第 4 列 1 0
  • 打开终端时出现 Bash 错误 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我最近使用以下命令在我的 mac 上安装了 Ruby brew install rbenv ruby build 然后我被指示输入
  • 从线程导入模块不起作用

    下面的代码失败并出现 NameError 代码有什么问题吗 如何在后台线程中导入模块 import threading def background imports from time import time thread threadin
  • pandas直方图绘图错误:ValueError:num必须是1 <= num <= 0,而不是1

    我正在从 pandas 数据框中绘制一列的直方图 matplotlib notebook import matplotlib pyplot as plt import matplotlib df hist column column A b
  • Swagger UI 在部署时显示错误(验证)

    我的应用程序中嵌入了 swagger ui 当我在本地运行节点应用程序时 UI 工作得很好 但是 当我将 UI 部署到 真实 服务器时 我在 swagger ui 的右下角收到错误图像 我确信我正在做的事情把事情搞砸了 但我不知道 当我通过
  • 在 Javascript 中迭代 JSON 字符串的最快方法

    我一直在使用 jQuery 框架的 each 来迭代通过 AJAX 调用收到的 JSON 字符串 现在这个字符串有时会非常大 导致 IE6 7 8 抓取 我想知道是否有更快的方法来迭代整个数据 感谢您的时间 使用常规的 javascript
  • AttributeError:“WSGIRequest”对象在 OAuth2Decorator 上没有属性“request”

    我在 Google App Engine 上使用 Django 尝试访问 Google API 时遇到了问题 我想使用装饰器 如文档中所述 但我一遍又一遍地遇到相同的错误 AttributeError WSGIRequest object
  • Matter.js — 如何获取图像的尺寸来设置主体大小?

    我正在尝试以编程方式设置 Matter js 中链体的宽度和高度 不幸的是 我只得到 0 作为值 我不确定为什么 我的猜测是图像加载速度不够快 无法提供这些值 如何在加载图像之前加载这些尺寸 伪代码 阵列中的几具尸体 获取Array中每个图
  • IE8 字体大小切换为 :hover - 仅限日语

    我有一个多语言页面 但只有日语版本有问题 由于某些原因 在 IE8 中 当我将鼠标悬停在某个元素上时 同级元素的字体大小将会增加 减小 更奇怪的是 这种情况并不是每次悬停都会发生 有时我无法立即重现 我需要继续将鼠标悬停在页面同一区域的不同
  • 如何在 Jersey 中注册静态类?

    我有一个类 只能通过以下方式访问其中的静态方法 path注释并且没有公共构造函数 我的简化程序是 Path static class MyStaticClass private MyStaticClass Get Path time sta
  • Extjs:两个并行的ajax调用

    我的代码同时创建两个ajax调用 我认为并行性会更有效 如果两个调用都成功 我想加载一个表 这样做的正确方法是什么 var succeeded function callBackOne succeeded one true your oth
  • 撤消核心数据管理对象

    我有这个代码 Store store NSEntityDescription insertNewObjectForEntityForName Store store name My Company 现在 商店是在上下文中管理的 并且将在保存
  • 动态语言 - 我应该选择哪一种?

    动态语言正在兴起 而且数量很多 例如Ruby Groovy Jython Scala 静态 但具有动态语言的外观和感觉 等 我的背景是 Java SE 和 EE 编程 我想将我的知识扩展到这些动态语言之一 以便为未来做好更好的准备 但我应该
  • iOS 6 - BluetoothManager 框架 - “NSObject”未找到错误

    我的问题是重复的this https stackoverflow com questions 14069892 bluetoothmanager framework nsobject error lq 1一 但那个问题 正确地 被关闭为非建
  • 是否有任何工具可以检测不再使用的代码/功能?

    我们有许多应用程序正在运行 考虑所有应用程序都在 Java 平台上运行 我们需要检查过去 例如 3 个月 使用了哪些应用程序 以及在这些活动应用程序中 哪些部分 功能 以及使用频率 仍在使用中 那可能吗 这里的目标是检测不再与业务相关的应用