编辑:显然我所说的不是墓碑。我从这个视频中得到了这个词:https ://www.youtube.com/watch?v=29UXzfQWOhQ
我正在开发一个复杂的 django webapp,最近我开始考虑添加墓碑来检测旧的和未使用的代码。
是否有用于创建和管理墓碑的 python 库?如果没有,您对我建立这样的图书馆有什么建议?
编辑:显然我所说的不是墓碑。我从这个视频中得到了这个词:https ://www.youtube.com/watch?v=29UXzfQWOhQ
我正在开发一个复杂的 django webapp,最近我开始考虑添加墓碑来检测旧的和未使用的代码。
是否有用于创建和管理墓碑的 python 库?如果没有,您对我建立这样的图书馆有什么建议?
这听起来像是一个死代码问题。你有两个选择:
代码覆盖工具
这涉及使用可以检测特定代码何时实际运行的工具。这称为代码检测。
为此,您必须通过一组广泛的测试来运行代码,以确保可以在实际部署场景中运行的代码的每一部分都实际运行。然后代码覆盖工具会告诉你什么是“剩余的”。
Coverage.py是我以前使用过的一个。
这里的问题是,如果您还没有那个广泛的测试套件,那么您将不得不正确的一个。
静态分析
静态分析涉及检查源代码以尝试推断可能发生的运行时问题。
使用像 python 这样的动态语言进行静态分析的问题是,很难仅从源代码中确定正在运行/使用的代码。有些事情很容易静态地发现(例如未定义的变量,尽管有一些警告),但有些事情则不然。举个例子:
class A:
value = 1
class B:
value = 2
l = [A(), B()]
print l[0].value
如果不实际运行代码,静态分析器将很难解决B.value
从未使用过的问题,而且列表索引不可能来自用户输入。
在 python 中,静态分析的选项并不多,但有一两个工具可供选择。 秃鹰就是一个例子,但正如所说,它不会是非常正确的。
我推荐 Pycharm 社区版: http: //www.jetbrains.com/pycharm/download/
它是免费且功能强大的 IDE,具有代码检查等功能。