这是一个合法的工具,还是我最终会从需求中脱颖而出的拐杖?经验丰富的程序员是否仍然使用流程图来计算操作顺序,还是他们在做它们的头脑?
更新:通过操作的顺序,我的意思是:
- 推出应用
- 读取首选项
- 计算从首选项
- 写首选项提交值...
现在,我在方法层面绘制图表以及应用程序级别当我无法可视化程序流程时。
这是一个合法的工具,还是我最终会从需求中脱颖而出的拐杖?经验丰富的程序员是否仍然使用流程图来计算操作顺序,还是他们在做它们的头脑?
更新:通过操作的顺序,我的意思是:
现在,我在方法层面绘制图表以及应用程序级别当我无法可视化程序流程时。
我一直使用流程图来绘制操作订单。
如果您的意思是“程序的整体数据流”意义上的“操作顺序”,则流程图是绝对必需的。每个人都有一个副本,并在办公室周围的白板上看到某些图表,因为它们非常重要/常见。例如,描述“来自应用程序的数据,使用UDP标头进行封装,然后传送到IP层,然后添加标头...”的图表“
如果您的意思是”操作顺序“在“这个代码如何工作”的意义上,那么是的 - 流程图也绝对有帮助。 “我们在这个例程中做的第一件事是计算校验和,然后我们将指针传递给下一个例程并设置一个定时器,定时器的回调函数为...”
如果您的意思是“操作顺序“作为表达式的数学评估,那么当试图理解某人的代码时,或者当试图编写自己的算法时,这也很重要。 “首先我们增加指针,然后我们将它解引用,以便我们可以读取值......”或“我们需要右移整数32次,检查1的存在,然后......”这些有时是算法流程图,或者有时是运算符流程图。无论哪种情况,它们都可用于理解正在发生的事情,而无需在思维上解析代码。
也就是说,它们根本不是拐杖。如果一个表达式不容易阅读(许多嵌套操作或括号,许多不同优先级的操作符 - 像解引用,递增和算术),它可能会更好地将代码分成多个更小的步骤。这样,您可以轻松显示计算的逻辑以及实施。你可能仍然需要一个流程图,但代码本身读起来更容易。
最后,更高级的/有经验的程序员有时不需要更多的流程图。他们已经记住了相关图表,或者他们可以更好地解析逻辑,因为他们能够识别某些习惯用法。如果你还没有的话,你一定会开发它。但同时,如果您需要了解某些内容,则没有理由不使用流程图。不是一个拐杖!
我画的东西很多,它取决于我理解抽象的能力。不要把它看作是一种拐杖,而应该把它当作你需要和使用的工具。你的能力与其他人有所不同,有时甚至更糟。不要因为使用可以帮助你成为工程师的工具而使自己陷入困境,即使没有其他人使用它们。
但重要的是,你应该一直在寻找更好的方法。
我尝试从代码生成文档,而不是其他方式,所以我会说不。
我通常会对其进行编码并修复它,直到它符合要求并且在代码中或生成任何文档。
在我目前的系统中(几乎完全基于SQL),系统中的进程在表中,元数据从我们维护的系统元数据或辅助表中提取。使用MSAGL从这些依赖关系生成流程图。这些图表还充当我们的交互式仪表板。
在我的头顶上,主要是业务分析师参与的流程图,主要是在规范制定完成时。
与非技术人员一起工作,这是一种便捷的数据/信息流建模方法。
噢是的:他们几乎总是很简单(至少是好的)。任何单一的流程图都包含多个多边形和多条线,并且您开始失去人员。
我的意见是,当在方法或表达式级别工作时,流程图通常是矫枉过正的。但是,它们可以用于学习,或者用于理解应用程序中的广泛控制流程。
如果您发现它们有用,没有理由不使用它们。
这取决于过程流程有多复杂。这是一个可视化显示信息流或工作流的工具。如果它很简单,那么一定要在你的脑海里做。我通常会发现(即使经过了14年的时间),在我的代码设计过程中查看它对于让我专注于正确的顺序过程非常有用。
流程图,如旧的种类http://en.wikipedia.org/wiki/Flowchart 是一个坏主意,当他们被发明时,仍然是一个坏主意。
我不知道任何程序员,好或坏,谁使用它们。他们没有帮助,因为他们可以使事情变得更加清楚的问题是微不足道的,任何不平凡的问题都变得难以理解,而不是通过流程图更加容易理解。我甚至会说任何正式的编程绘图系统都是浪费时间。当然,你可以在白板上画一些素描,或者用铅笔和纸做些有用的素描,但是超越这个(例如visio,我看着你的白痴)是浪费时间。
没有,有经验的程序员不使用流程图,他们使用的数据流图,动作图,序列图,用例等;流程图失宠于20世纪70年代的时候实证研究*几乎证明了他们是无用作为设计工具
...GRA的实证研究主要集中在流程图上,这些研究的结果表明其作为理解辅助手段的有效性值得怀疑。
是的,当然。视觉隐喻是有用的工具。
+1 ...我从来没有写过任何流程图,我觉得它们使用起来很尴尬。我在阅读问题时首先想到的是*“序列图”*。 +1 defo。 – SyntaxT3rr0r 2011-02-12 22:55:53