Python:检测从未在生产中执行的代码

gue*_*tli 7 refactoring legacy-code code-cleanup

我需要在一个庞大的遗留Python代码库中进行重构.

我常常认为"这些生产线不再在生产中执行".

但我不确定.

有一些测试触及这些线.但我无法确定生产中是否真的没有使用过.

在这种情况下我该怎么办?

这个问题涉及生产系统的覆盖范围.这个问题与测试/ CI期间的覆盖率无关.

我不想评论这些行,因为我不想在生产系统中产生错误.

Ser*_*sev 3

常见的做法是在该代码行中使用日志记录。例如,您有一段您认为未使用的代码块。您在该代码块的开头添加 try catch 块。在 trycatch 中,您将行添加到与可疑代码块命名相同的特定 json 中。

try:
    with open("block1.dat", "rb") as file:
        activity = pickle.load(file)

    curtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    currentact = "dt = {}; code done that: var1 = {}, 
        var2 = {}".format(curdate, var1, var2)

    activity.append(currentact)

    file = open("block1.dat", "ab")
    pickle.dump(activity, file)
    file.close()
except Exception: pass
Run Code Online (Sandbox Code Playgroud)

您可以使用 telegram api 来记录代码。一段时间后,您将获得有关代码运行频率及其用途的信息。然后你监控一段时间,如果一个月没有任何反应,你可以评论该区块。