可视化代码的架构

Visualizing your code's architecture

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

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

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

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

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

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

Pycharm 你可以:

  • view 源代码的结构和层次结构

  • view 类.

  • 的 UML 图

还有pycallgraph2Pythonmodule that can create call graph visualizations for Python applications. (This is a maintained fork of the discontinued pycallgraph Python module)

还有 Codimension IDE 具有 Python 代码可视化 feature

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

Sourcetrail is an interactive source explorer that simplifies navigation in existing source code. Sourcetrail's aim is to give answers to all your questions about your source code. Sourcetrail first indexes your code and gathers data about its structure and then provides you a simple interface consisting of three interactive views, each playing a key role in getting information.

更新:Sourcetrail 也正式开源了。 Github link.

2021 年结束前更新:Sourcetrail 现已正式停产。这是关于此决定的 blog link(郑重声明,它在我的 Windows 11 Home Insider 预览版 OS build 22523.1000 上仍然运行良好;日期:2021-12-21)。

scitools it fits your use case very well, I think. here's a UML 有一个名为“understand”的工具是我为我正在使用的项目生成的。它是付费的,但您可以免费试用。