是否有可视化 program/project 结构的具体工具或方法?

Are there concrete tools or methods for visualizing the structure of a program/project?

我正在编写一些初学者编程教程,发现很难跟踪所涉及的许多模块和函数、它们的目的(抽象地)以及它们的相互关系。我希望看到从鸟瞰图到更好地设想如何更优雅地重组和重构代码的所有内容。

是否有专门的工具(白板和记号笔除外)供专业人员用来管理这种复杂性?是否期望程序员只依赖心智模型?专业人士会用 Lucidchart 这样的流程图软件来做这种事情吗?

总是UML,虽然我不是超级粉丝。

您也没有用您所说的语言进行标记。

对于 .Net,Visual Studio 实际上可以从这些图表中 auto-generate code

你也可以检查这个similar post on Quora

Structure Charts have been around since the mid-70s. Data Flow Diagrams, if you do leaf level -1 only, are useful too for structured (non-OO). If doing non-OO look at the Yourdon Method. Also look at Essential Systems Analysis作为事件分区的依据。有多种 CASE 工具仍在使用。

UML 可以很好地工作并且已经存在很多年了,如果你正在做 OO。如果一个人不去 "diagram-happy" 那么 UML 可以很好地工作。

有数据关系的 ERD。

图形建模工具在普通程序员群体中的普及率从未超过 18%。我认为部分原因是缺乏对开发人员的适当培训,缺乏使用管理模型管理项目的适当培训,以及 over-promise/under 由 CASE 工具供应商提供。我在大学开始使用图形工具——结构图。我总是惊讶于 "professional developers" 是如何在没有相互关系和依赖关系的可视化模型的情况下编写大型程序的。 他们怎么记得这一切?当新人加入项目时,他们如何让他们跟上进度?

我们这些问你问题的人似乎是少数。我不认为这是 "tool-thing." 我认为有些开发人员想要 "higher level of abstraction" 和可视化,有些则不需要。