Tag: 重构

如何重构数千行Java代码? 有没有可用的工具?

在我们的应用程序中,我们有两个或三个类,其中包含整个Java Swing应用程序逻辑。 这两个或三个类包含大约7k行代码。 现在我被赋予了重构这个Java代码的任务。 我该如何开始? 有没有可用于重构或至少指导我们的工具?

Java重构工具

可能重复: 像ReSharper这样的工具,但对于Java? 我大量使用Eclipse提供的Java代码重构工具(提取接口,重命名方法等)。 有没有人知道其他类似的工具(最好是Eclipse插件)可以执行默认情况下在Eclipse中不可用的Java代码重构,或者可以更好地执行相同的重构? 我知道各种Eclipse插件可以识别需要重构的代码(例如FindBugs,UCDetector),但我正在寻找可以实际进行重构的工具。

Java中的大类分解

我刚刚开始学习Java,并且很好奇Java中是否有良好的对象分解方法? 让我来描述一个问题。 在大型软件项目中,它总是像“核心”或“ui”这样的大类,往往有很多方法,并且打算作为较小类之间的调解者。 例如,如果用户单击某个窗口上的按钮,则此窗口的类会向“ui”类发送消息。 这个’ui’类捕获这个消息,并通过使用应用程序用户界面(通过其中一个成员对象的调用方法)或通过将消息发布到应用程序’core’来执行相应的操作,如果它类似于“退出应用程序”或“启动网络”连接’。 这些对象很难分开,因为它们仅仅是许多小应用程序对象之间的调解器。 但是,如果这样的方法是从一个对象到另一个对象的简单任务委托,那么在具有成百上千种方法的应用程序中使用类就不是很方便。 C#通过允许将类实现分解为多个源文件来解决此类问题:您可以按照您选择的方式划分上帝对象,并且它将起作用。 通过在Java中划分这些对象的任何做法?

GWT,Eclipse插件如何将项目与.gwt.xml文件一起重命名? 尝试这样做时会出错

我花了一段时间在这上面搜索,我发现的任何内容似乎都与我的问题无关。 我正在进行RPC调用,所以我想改变我的一个Web服务的路径。 它就像mytestproject并希望将其更改为finalprojectname 我转到mytestproject.gwt.xml文件并将更改为 然后我运行它并得到一个错误, [ERROR] Unable to find ‘org/ediscovery/gwt/mytestproject.gwt.xml’ on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source? [ERROR] Unable to find ‘org/ediscovery/gwt/mytestproject.gwt.xml’ on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source? 然后我将mytestproject.gwt.xml更改为finalprojectname.gwt.xml但仍然得到了相同的结果。 我查看了每个可能的文件,但无法找到为什么它认为该项目仍然命名为mytestproject 。 我已经清理并重建了项目等,但仍然是一样的。 […]

如何在Java中将可执行块作为参数传递?

有没有办法将可执行块作为参数传递给静态方法? 有可能吗? 例如,我有这种方法 public static void someMethod(boolean flag, Block block1, BLock block2) { //some other code if(flag) block1.execute(); else block2.execute(); //some other code } 或类似的东西。 它实际上比这更复杂,我只是简化了问题。 我试图重构我的项目,我创建了一个通用实用程序类,其中包含我的类使用的静态方法。

是否有任何开源命令行工具来重构java代码?

我使用vim作为我的编辑器,但我想在重构时获得一些与Java相同的function。 是否有用于重构java的命令行工具? 我可能会使用perl或vim脚本一起破解某些东西但是如果已经存在某些内容我宁愿使用它。

糟糕系统设计的代码重构

我是一名初级软件工程师,他接受了接管旧系统的任务。 根据我的初步评估,该系统存在一些问题。 意大利面条代码 重复的代码 10k及以上的课程 使用log4j进行滥用和过度记录 糟糕的数据库表设计 缺少源代码控制 – >我为此设置了Subversion 缺少文档 – >除了阅读代码之外,我不知道业务规则 我该怎么做才能提高系统质量并解决这些问题? 我可以考虑使用静态代码分析软件来解决任何不良编码实践。 但是,它无法检测到任何不良的设计问题或问题。 我该如何逐步解决这些问题?

构造函数参数 – 经验法则

通常,类构造函数应该接受的参数的最大数量是多少? 我正在开发一个需要大量初始化数据的类(目前有10个参数)。 但是,具有10个参数的构造函数感觉不对。 这让我相信我应该为每个数据创建一个getter / setter。 不幸的是,getter / setter模式不会强制用户输入数据,如果没有它,对象的表征就不完整,因此无用。 思考?

我可以自动重构整个java项目并将大写方法参数重命名为小写吗?

我正在一个java项目中,其中很大一部分代码是用我不喜欢的格式化样式编写的(并且也是非标准的),即所有方法参数都是大写的(以及所有局部变量)。 在IntellJ上我可以使用“分析 – >检查代码”并实际查找所有出现的大写方法参数(超过1000)。 要解决一个问题,我可以做“重构>重命名参数”,它工作正常(让我们假设没有重叠)。 有没有办法自动执行这个重构(例如:重命名方法参数从大写开始到以小写字母开头的同名)?

如何降低Cyclomatic Complexity?

我有一个接收Object的方法,并根据它检测到的对象类型做一些事情: void receive(Object object) { if (object instanceof ObjectTypeA) { doSomethingA(); } else { if (object instanceof ObjectTypeB) { doSomethingB(); } else { if (object instanceof ObjectTypeC) { doSomethingC(); } else { if (object instanceof ObjectTypeD) { doSomethingD(); } else { // etc… } } } } } 如何降低Cyclomatic Complexity? 我四处搜寻但找不到任何有用的东西。