【问题标题】:Tool helping split a huge class into two帮助将一个巨大的班级一分为二的工具
【发布时间】:2012-01-25 17:33:19
【问题描述】:

有没有很好的帮助/工具可以帮助我将一个庞大的班级分成几部分? 代码很好地完成了它的工作,但是有一个超过 500 行的类是不舒服的。我相信它可以分成更小的部分。

这次我对python的一个工具感兴趣,但我确定它不算数。

【问题讨论】:

  • 您使用的是哪种编程语言/环境?
  • 我希望它存在。您可以在方法和字段之间绘制图表(方法 M 使用字段 F)。基于此图,算法可以提出建议。
  • 我目前正在使用 py3k,但我认为该图可以独立于语言创建。

标签: python refactoring developer-tools


【解决方案1】:

您为什么不能手动执行此操作? 500 行并不多。我怀疑任何工具都能够在它所服务的目的范围内有意义地拆分一个类。我建议您自己将其拆分,并在使用时重新设计/重构代码。

【讨论】:

  • 我在问题中添加了我的评论
【解决方案2】:

首先,500行代码是什么让你“不舒服”?为什么你认为你只需要将班级分成两个新班级?也许这个类就这样很好(500 个并不大),或者,也许这个类需要分成 3 或 4 个不同的类。

如果没有更多信息,我想说的是,除非您能理解为什么需要将工具拆分成更小的部分,否则该工具不会对您有所帮助。没有工具会告诉您如何拆分班级。

问问自己班级的单一职责是什么。如果你想出不止一个,那么至少应该按照职责划分班级。如果你想出 6 个,那么你还有很多工作要做。

【讨论】:

  • 是的,没错,没有工具会告诉你如何分割它,但根据我对这个问题的评论,它可以给你很好的提示。
  • 我不知道有任何工具(学术界之外)可以为您提供所需的提示。即使这样做了,该工具也不会帮助您设计一组更好的类,因为这需要自动化工具根本不具备的知识(您将接近 AI)。所以,我鼓励你停止寻找工具,开始审视和思考你的代码设计,以及每个类应该承担的责任。
【解决方案3】:

嗯,它计算你的意思是什么语言。与 python 之类的语言相比,你可以对 java 之类的语言进行更安全的自动重构(因为 python 的动态特性)。

在 Python 中使用getattr() 是正常的 ("pythonic"),而在 java 中使用自省更像是“除非必须,否则不要使用它”。此类技术使自动重构工具几乎无法工作,因为它们无法检测所有关系。

无论如何,对于 java 和 python,我都使用 Eclipse 进行重构。它做得很好。对于 python,您将需要 pydev 插件或 aptana studio。

【讨论】:

  • 是的,我同意你的观点,在 python 中重构比在 java 中更困难,但我个人不是每天都使用getattr(),所以如果它错过了这些连接我很好.
【解决方案4】:

我找到了ExtC Visualizer,它是用于java的,但还不能让它工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2013-02-25
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多