我倾向于成为一名视觉思想家。因此,如果我可以想象通过程序的数据流,我可以更好地了解其中发生的事情,如果我正在阅读发生了什么的文本故事(伪代码)。
有没有办法直观地表示变量和对象流过的方式并被函数更改?最好是小规模,单个功能内部以及整个程序规模较大的东西。
例如用于教授句子图表的英语课程。电气工程师有电路图。计算机科学中是否有同等学历?
答案 0 :(得分:8)
我是一个哈斯克勒,所以我会代表纯函数式编程。我想到的第一件事是commutative diagrams。这些可以用来描述函数和结构如何相互作用;然而,他们宁愿定义不变量/定律而不是行为。
在考虑评估lambda演算(或基于其的高级语言)时,另一件有用的事情是graph reduction中使用的表达式图。它们让您看到表达式的结构,包括共享。当然,只要代码是纯粹的,即没有发生突变,这才有意义。
第三种用于可视化数据如何通过函数传递的图表是不同类型的数据流图,例如用于arrows的数据流图(也可用于正常函数,因为{{ 1}}是箭头),或SICP的"Hendersion diagrams"。这些显示了各个功能如何“插在一起”。另一个观点是用于绘制流处理/管道和过滤器样式的图表,如marble diagrams,它更侧重于时间概念(而且,与箭头图相反,确实代表单个值)。
答案 1 :(得分:4)
答案 2 :(得分:3)
我也倾向于成为一名视觉思想家。很多时候,当我试图完成一个项目或者我在代码中找不到错误时,我会把它带回到框图中。
这可能会让大型节目变得混乱,但你可以随波逐流。通过图表得到的数据,看看会发生什么。
答案 3 :(得分:0)
B Clay Shannon提到了UML图表,所以我会拿起手套。 UML diagrams已经出现了很长一段时间,是SW开发社区中公认的工具,易于使用和理解。
我会提到我倾向于使用最多的2个图表:
这只是UML图表的一个非常简短的总结。今天的大多数UML应用程序允许从现有代码中反向工程图,并从图中生成代码。
这意味着您可以使用UML记录遗留代码,并在功能设计阶段使用UML,在开始处理功能实现时可以从中生成代码。
其他链接: