可视化代码的架构 [关闭]

Posted

技术标签:

【中文标题】可视化代码的架构 [关闭]【英文标题】:Visualizing your code's architecture [closed] 【发布时间】:2018-09-13 18:55:24 【问题描述】:

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

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

是否有一种工具可以根据源代码直观地向我展示代码的“架构”,即类方法和函数如何协同工作?

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

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

【问题讨论】:

【参考方案1】:

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

Pycharm 你可以:

view源码的结构和层次

view你的类的UML图。

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

还有CodimensionIDEPython代码可视化feature

【讨论】:

您知道其他工具/IDE(甚至非 Python,例如 Visual Studio)是否集成了更好的可视化技术? 好吧,我个人喜欢Creole Eclipse 插件可视化Java 程序,但现在已经过时了。你也可以看看Source Navigator工具,Control Flow Graph FactorySourcecode VisualizerEclipse插件【参考方案2】:

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

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于可视化代码的架构 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C/C++源代码可视化? [关闭]

可视化神经网络架构工具

如何以编程方式可视化 XML 模式? [关闭]

使用 Tensorboard 实时监控训练并可视化模型架构

Weka 可视化聚类结果 [关闭]

使用可视化 C# 插入 MySql 服务器 [关闭]