Python工具,建议重构

时间:2009-04-24 12:41:03

标签: python refactoring

在深入挖掘遗留Python代码并自己编写Python代码时,我经常使用pylint。我也在使用Clone Digger。我最近开始使用rope,这是一个用于自动重构的库。

但我正在寻找除绳索以外的其他东西。我更喜欢一个只提出可能的重构建议的工具:命名重构,可选地提供它的简短描述(非常适合学习目的),突出显示代码部分并让我自己进行重构。有这样的工具吗?

5 个答案:

答案 0 :(得分:2)

检查自行车修理工http://bicyclerepair.sourceforge.net/

什么是自行车修理工? Bicycle Repair Man项目试图为python创建重构浏览器功能。它被打包为一个库,可以添加到IDE和编辑器中以提供重构功能。包中包含Emacs和Vi的绑定。

我自己从未使用它,但已阅读过它。听起来像你在寻找。

答案 1 :(得分:2)

您可能喜欢Pythoscope,一个自动Python单元测试生成器,它可以帮助您通过动态执行代码来引导单元测试套件。

另外,你有没看过rope.contrib.codeassist模块?它应该为您自动提出并执行源代码的重构。

答案 2 :(得分:1)

如果这种工具以任何特定语言存在,我不会这样做,尽管Martin Fowler的重构书(web reference)中提到了这个概念。

我所知道的目前最好的工具是圈复杂度。 This article为python实现了一个圈复杂度计数器。

目标的另一个简单指标是方法/函数长度,对象/类的属性数量和函数的参数数量,如果我记得,pylint已经计算了那些。

答案 3 :(得分:1)

哦忘了你的工具,而是使用TDD和一本好书,比如重构Kerievsky设计模式。问题在于重构是一种改进代码和设计的方法,但只有你可以知道你想要实现的目标,没有重构工具可以为你做到。

我的观点是,学习重构的最佳方法是学习示例,而不是遵循一些愚蠢/简单的工具,因为他们不会教你任何复杂的重构,也不会告诉你是否有重构与你的代码组合良好。

PS Read Fowler“Refactoring”和Kerievsky“重构设计模式”这些书在学习重构时必须阅读。他们提到了检查是否需要重构的简单方法(气味)。

同时考虑将TDD作为确保您的裁判安全并且不破坏您的代码的好方法。 Beck“以实例为基础的测试驱动开发”是一本很好的书。 Python有PyUnit for TDD。

答案 4 :(得分:0)

NetBeans有一个支持Python的早期版本,而且非常好用。它有一些我发现有用的基本重构工具。作为额外的奖励,它适用于Windows,Linux,Mac OS X和Solaris。

查看时间: http://www.netbeans.org/features/python/