1
2
首先,我不知道在Python中实现的任何工具或库,专门为重构Java代码而设计,而谷歌搜索没有给我任何线索。 其次,我假定编写这样一个体面的工具或库来在Python中重构Java将是一项艰巨的任务。在Python中,你必须实现Java编译器前端(Loister-/PalScript,AST Builder和Type分析器),然后想出如何将它与程序编辑器集成。没人这么做我一点也不奇怪…考虑到成熟的替代品已经存在。 第三,在没有对源代码进行全面分析的情况下进行重构(例如使用模式匹配)将无法进行复杂的重构,并且在实现者没有想到的边缘情况下可能会出错。我想这是手术室目前的水平… 鉴于这种暗淡的前景,还有哪些选择: 一种选择是使用现有的Java IDE(例如NETBeaS、Eclipse、IDEA)。作为重构工具。op将无法在python代码中扩展这样一个工具的功能,但很可能他并不需要。我希望这些ide中至少有一个能满足95%的需求,而且(如果他是现实的话)应该足够好。特别是当你认为ide有很多附带的特性,这些特性有助于使重构更容易;例如结构化编辑、撤销/重做、增量编译、智能代码完成、智能搜索、类型和调用层次结构视图等等。 (……)如果现有的ide不够好(@wizardofods-只有op可以调用!!),尝试扩展现有IDE的重构功能比使用其他实现语言重新启动更有意义。) 根据他实际所做的工作,模型驱动的代码生成可能是另一种选择。例如,如果重构是因为他经常创建和重新创建对象模型而发生的,那么另一种选择是用某种建模语言对模型进行编码,并从这些模型生成代码。我在做这类事情时选择的工具是eclipse emf和相关技术。emf技术包括编辑器的生成、xml序列化、持久化、查询、模型到模型的转换等。我使用emf来实现和推出包含50到100个不同类的对象模型的项目,这些类具有复杂的关系和验证需求。emf支持在从更新的模型重新生成时合并源代码编辑,这是一个关键特性。 |
2
0
如果您在爪哇编码,我强烈建议您使用 NetBeans IDE . 它内置了这种重构支持。 Eclipse 也支持这种方式(尽管我更喜欢netbeans)。这两个项目都是开源的,所以如果您想了解它们是如何执行重构的,可以查看它们的源代码。 |
3
0
如今Java受到了公平的批评,但在工具领域,这是不合理的。 我们被宠坏了;eclipse、netbeans、intellij是三大ide。所有这些都提供了优秀的搜索和重构级别。我认为eclipse在netbeans上有优势,intellij常常领先于eclipse 还可以使用findbugs、checktyle等静态分析工具来查找问题,例如方法和类过长、代码过于复杂。 如果你真的想利用你的python技能-看看jython。它是用Java编写的Python解释器。 |