33

每个周末我都在编写一个个人项目,随着时间的推移,这个项目现在已经达到了一定的复杂性,我有一系列不同的函数来接受我的输入,我保存在一些类对象中,把它切碎,处理它,然后最后输出它。
由于我在编码会话之间进行了大量休息,我通常会忘记我的代码的精确结构。因此,每次我遇到错误时,我都必须重新熟悉输入数据如何在我的代码中流动,在某些提供功能的模块内部如何组织事物等。

我不确定这是否是由于我的软件代码结构错误,或者仅仅是固有的复杂性。

有没有一种工具,在给定源代码的情况下,可以直观地向我展示我的代码的“架构”,即类方法和函数如何协同工作?

理想情况下,这也将帮助我更快地理解其他人编写的代码,以便快速了解各个代码片段如何交互。

(我正在使用 Pycharm 编写 Python 代码,如果这对您有帮助的话。)

4

3 回答 3

22

恐怕没有完美的工具可以全面可视化您的程序架构及其控制流程,您应该将它们牢记在心,并使您的软件架构干净、统一和可预测。但是,有一些工具可以帮助您。

Pycharm您可以:

  • 查看源代码的结构和层次结构

  • 查看您的类的 UML 图。

还有一个pycallgraph2 Python 模块可以为Python应用程序创建调用图可视化。(这是已停产pycallgraph Python 模块的维护分支)

还有Codimension IDE具有Python代码可视化功能的

于 2018-04-04T09:49:06.947 回答
13

我找到了另一个完美匹配这个问题的工具:Sourcetrail,2019年正式支持C/C++/Java/Python。下面的文字来自其官方文档:

Sourcetrail 是一个交互式源代码浏览器,可简化现有源代码中的导航。Sourcetrail 的目标是回答您关于源代码的所有问题。Sourcetrail 首先索引您的代码并收集有关其结构的数据,然后为您提供一个简单的界面,该界面由三个交互式视图组成,每个视图在获取信息方面都发挥着关键作用。

更新:Sourcetrail 也是正式开源的。Github 链接

2021 年结束前更新:Sourcetrail 现已正式停产。这是有关此决定的博客链接(作为记录,它在我的操作系统版本 22523.1000 的 Windows 11 Home Insider Preview 上仍然运行良好;日期:2021-12-21)。

于 2019-10-18T13:50:31.120 回答
1

我认为, scitools有一个名为“理解”的工具,它非常适合您的用例。这是我为正在处理的项目生成的UML 。它是付费的,但您可以免费试用。

于 2020-08-06T14:40:08.243 回答