13

您在编程时使用什么图表技术来帮助您或其他人理解您的程序或设计。我不是在谈论一个人最喜欢的工具,尽管一个好的工具可能会极大地帮助一个人绘制图表。

我在这个问题上的目的是找到人们实际使用的简单有用的图表技术,并找到新的学习方法。

您是否使用流程图、数据流程图、ER 图等?

网络上到处都是推荐!但是真正的程序员、设计师和代码维护人员在日常工作中实际使用的是什么。

感谢您的反馈意见

4

13 回答 13

17
  • 非常高级的讨论 - 框可能代表类、包或子系统的上下文图。
  • 高级设计 - 显示子系统之间接口的序列图,仍然没有直接使用的类,但可能从中暗示。
  • 详细设计 - 类级别的序列图。

如果有一个棘手的算法,例如将多个数据流关联到一个新流中,那么我通常会使用流程图来计算算法。

如果解决方案需要了解状态,则还使用状态图。

这些是我用得最多的。

在进行数据仓库设计时,我会绘制星型模式来确定如何存储数据。在进行事务数据库设计时,我使用实体关系图来处理我们的数据存储。

在设计 UI 时,我只是把它画出来。一旦我开始完成 UI 的某些部分并想尝试某些区域,我将制作一个模板,打印出副本,然后将其用作处理子部分的指南。对于配色方案,可以很方便地使用 gimp 制作图形并为每个设计部分设置图层,然后使用图层为每个部分着色以找到正确的平衡。

于 2009-03-11T21:14:00.630 回答
12

我们真正使用的是什么?也许其他人实际上创建了正式的图表,但在大多数情况下,我只是在一张纸上涂鸦气泡、方框和线条。

于 2009-03-11T20:20:59.417 回答
6

我使用白板进行建模,所以我想“白板建模语言”将是我的答案。

于 2009-03-11T20:21:41.163 回答
3

我将为我正在设计的任何比几个类更大的东西做一个 UML 类图。绘制类图让我花时间思考设计,而不是直接投入代码并总是产生更好的结果。

对于更大和更复杂的架构,我发现序列图是一种交流行为的好方法,尤其是对于多线程系统。

于 2009-03-11T20:24:57.270 回答
2

我使用图表来快速理解遗留代码。创建图表需要一些工作,但最终总是有回报的。

通常我使用类图来了解全局。如果一段代码非常难以理解,有时序列图甚至数据流图。

在设计阶段,我使用类图,并且经常使用状态图。如果类行为与其状态不同,则状态图是完美的。

于 2009-03-11T20:53:10.430 回答
2

我经常使用序列图(画在纸上)。我发现它们为我提供了一个很好的可视化表示方法调用的逻辑流以及我们应用程序中各种系统和组件之间的信息。

于 2009-03-11T21:03:05.290 回答
1

我有一个我使用和开发的主要产品的流程图。

我的团队还经常在白板上使用UML 图表草图,同时为我们设计新的部件来实现。它们在创建设计模式和对需要的类的高级结构进行建模时非常有用。这些从来都不是完整的UML...

于 2009-03-11T20:20:53.503 回答
1

用于讨论的白板。

笔和纸用于较少的临时记录。

'Things to impelement' 的代码存根。

经过测试和工作的代码(带有大量评论)供后代使用。

于 2009-03-11T21:00:50.680 回答
1

对于任何比 shell 脚本更大的项目,我都会在纸和白板上使用 ER 和类图。

流程图,仅当我需要向非程序员解释一个过程时(或者如果它是一个非常复杂的过程,我需要先理解它)。

我的老老板常说“这家伙就是喜欢画画”。

于 2009-03-11T21:05:32.790 回答
1

我绘制了 UML 类、对象和序列图的混蛋版本。虽然我试图忠实于语法,但我更关心表达特定功能背后的主要思想。所以,我会草拟一些东西,请一位同事看一下,如果看起来足够清晰,我们甚至可以扫描它并将其发布到我们的 Wiki 中。

然后,当碰巧我们实际上有一些时间来处理文档时(而且几乎从来没有),我将使用BOUML并将涂鸦重新绘制成适当的图表。

现在,总而言之,我在一个相对较小的团队(5 个开发人员)工作,用 Java 制作交易和产品配置平台。我们有我们的两种产品,然后我们根据客户的要求另外定制。作为一个紧密联系的社区,几年的周转率很低(零),我们主要将文档用作自己的剩余部分。在此设置中,上述方法效果很好。

于 2009-03-11T21:07:25.670 回答
1

我在 AJAX 开发环境中工作,我编写的大多数后端代码都像关系数据库和前端 javascript(用户界面)之间的管道一样工作。因此,我使用的最常用的“图表”是 JSON 对象,用于描述数据应如何在数据库和接口之间来回传递。它们是简单、通用且易于理解的数据结构。

例子:

{ "id": row['id'], "name": row['name'], "mandatory": row['mandatory'], "rangeDescription": "This is the Range", "globalRate": row ['全球的'] }

于 2009-03-11T21:07:26.450 回答
1

我喜欢数据流图。很多。

于 2009-05-13T22:08:10.243 回答
0

我使用交流所需的任何东西。通常这根本不算什么。有时它是一块白板。

有时,我会使用Sparx Enterprise Architect,它是一个 UML建模工具,尽管它在使用时会生成不错的图表。我已经将它用于需求、用例、活动、序列、域甚至类建模,有时还用于一些逆向工程 ER 图。不惜一切代价来理解这一点。

于 2009-03-11T20:30:48.473 回答