Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 功能相关性分析_Java_Eclipse_Generics_Jakarta Ee_Eclipse Plugin - Fatal编程技术网

Java 功能相关性分析

Java 功能相关性分析,java,eclipse,generics,jakarta-ee,eclipse-plugin,Java,Eclipse,Generics,Jakarta Ee,Eclipse Plugin,使用eclipse的开发人员不能错过Cntrl+Shift+G组合,这是在工作区中查找特定成员/方法/类的所有引用的最简单方法。 考虑一个场景,你是一个新的家伙,维护一个用java编写的Web应用程序。现在,您将要更改一个方法签名,并执行Cntl+Shift+G以查找对所述方法的所有引用(是的,希望您没有执行依赖注入/反射等)。然而,一个新手可能不想破坏应用程序中的任何功能。如何确保功能依赖关系不受影响 我想这个问题有点不清楚。。让我重新措辞。。。假设您正在更改一些功能性的东西(业务规则中的if

使用eclipse的开发人员不能错过Cntrl+Shift+G组合,这是在工作区中查找特定成员/方法/类的所有引用的最简单方法。 考虑一个场景,你是一个新的家伙,维护一个用java编写的Web应用程序。现在,您将要更改一个方法签名,并执行Cntl+Shift+G以查找对所述方法的所有引用(是的,希望您没有执行依赖注入/反射等)。然而,一个新手可能不想破坏应用程序中的任何功能。如何确保功能依赖关系不受影响


我想这个问题有点不清楚。。让我重新措辞。。。假设您正在更改一些功能性的东西(业务规则中的if循环或whateva)——这肯定会更改应用程序上下文中的其他东西。。在这一点上,你希望在eclipse中有一些东西(插件?),它会告诉你——“嘿,noob……不要改变这个——它会影响这个……”现在,如果你要为eclipse创建这样的东西(插件?),你会从哪里开始?(标记部分scr代码并引入depdency树?等等?

怎么样?

也许我没有理解你的问题,但我想我可能有答案。看看(或)。它是一个用于代码探索的插件。专注于一段代码,开发人员可以快速确定调用方法的位置、使用类的位置等。这使您更容易理解要更改的内容


我是这个插件的开发者。如果它不是您想要的,请告诉我,我很乐意更好地了解您想要的。

此外:ALT+SHIFT+C是更改方法签名的方法。ALT+SHIFT+G“only”查找引用,这当然很有帮助

vickirk在这里提到了最重要的一点:如果没有测试和良好的代码覆盖率,您就无法应用任何更改而不冒系统随后出现故障的风险

Robert C Martin的《有效地使用遗留代码》一书很好地解释了这一点:测试未涵盖的所有代码都是遗留代码。您可以得出结论,在应用任何功能更改之前,您需要确保足够的测试覆盖率


在源代码中标记部分似乎不是一个好主意,因为这些标记需要额外维护,这在项目中通常不会真正发生。:)

如果你有单元测试,那么它们应该足以表明更改已经破坏了预期的行为。单元测试完成了代码吗?@zvikico我刚刚检查了nWire的演示。它看起来很漂亮,但我想要的却大不相同。。想象一下。。假设你有一个“项目”和“资源”在做一个项目。显然,代码不是自我意识的,但我想说的是,在项目中更改某些内容(功能更改)可能会改变应用程序在“资源访问项目”方面的行为方式。。这是个糟糕的例子。。但我希望这是有意义的?alrite。。我读到..我添加的内容对我来说毫无意义-(这里是另一个例子..假设您有一个共享软件应用程序,并且您将要注册它,因此会出现“Name”和“Key”提示。并且,假设在代码中有一个如下检查:if(Key由Name生成)=然后让程序以其他方式注册失败;现在,如果我将if条件改为!=而不是=,这会改变程序的行为方式,不是吗?如果您的IDE以某种方式警告您可能会影响什么,这不是很好吗?您正在修改一段代码。此代码会影响使用它的所有代码。简单明了。如果你知道这些部分是什么,你就知道会受到什么影响。当然,你应该继续探索这些依赖关系,以确定可能发生变化的所有领域。因此,我看不出有什么区别。这只是从UI角度来看的吗?(即,我更改了代码,我想知道我的UI的哪些部分会受到影响?)@zvikico“如果你知道这些碎片是什么,你就知道会受到什么影响”-正确。我们谈论的是消除这个拥有知识概念的开发人员。当开发人员编写代码时,他知道,但一旦编写应用程序的开发人员离开,新手将花费大量时间来理解依赖关系。有没有更简单的方法?有没有一种方法?因此,从技术上讲,您正在寻找能够找到给定方法的调用程序的可传递闭包。这将让您很好地了解给定更改可能会影响什么。