刚开始编程时,我非常依赖流程图(和打印机间距图)。当我在COBOL课堂上时,直到我的流程图被教员批准后,我才能开始编写任何代码。那时,我必须为所有内容制作流程图。
今天,二十五年后,我发现自己只绘制了两种情况。逻辑很棘手的非常具体的算法或非常笼统的概念,以确保我按正确的顺序定义了所有重要步骤。
我只是忽略了流程图的其他用例吗?
刚开始编程时,我非常依赖流程图(和打印机间距图)。当我在COBOL课堂上时,直到我的流程图被教员批准后,我才能开始编写任何代码。那时,我必须为所有内容制作流程图。
今天,二十五年后,我发现自己只绘制了两种情况。逻辑很棘手的非常具体的算法或非常笼统的概念,以确保我按正确的顺序定义了所有重要步骤。
我只是忽略了流程图的其他用例吗?
Answers:
绝对。
每当我实现以前没有做过的事情(该算法需要执行多个步骤)时,我都会对其进行规划。我发现,这确实迫使我比未提出解决方案更全面,更彻底地分析整个解决方案。我发现这种做法有三个主要好处:
我实际使用它们的两种不同情况是:
说了这么多,我不会每天制作流程图(即使完成了流程图,除非我写技术设计文档,否则通常是白板会议)。
流程图-尤其是25年前的实践-已被更具表现力的制图技术所取代(请参阅操作图,序列图,状态图等)。
IBM自己的研究表明,流程图的使用对系统的设计或实现的质量没有影响(尽管它们对于与用户和其他开发人员进行交流而言微不足道)[精确参考资料不易获得,但在James Martin的Diagramming Techniques中被引用。[分析师和程序员 ]。
由于各种原因,我一直使用流程图:
在我看来,它们比UML用例图更好。它们可以反映许多不同的用例以及它们如何交互,并且在整体上做得更好,将用户体验和决策结合在一起。
它们更易于理解和直观。您的思维自然就像迷宫一样从始至终跟随着箭头。您可以使用流程图结束并引用另一个流程图,以了解不同的用户故事。我通常可以将它们打印在页码编号的书中,然后快速翻转页面以导航到下一个流程图。
它们是普遍的。软件工程以外的人很少了解和理解UML图,其中流程图被用户和业务分析师所识别。我尝试与客户交流复杂的用例,有时他们难以理解,我画了流程图,他们理解了为什么最终了解使它变得比他们想象的要复杂得多的所有细微差别。
我不是程序员。我是硬件工程技术人员。
从我的角度出发,至少应从解释将要使用的逻辑块的注释开始。之后,用实际代码充实程序框架。这类似于使用故事板启动电影脚本,然后再填写动作详细信息和对话框。
是否应该认真计划任何有价值的工作?在硬件领域,我们从客户需求文档开始,然后写出硬件规格文档,然后充实原理图,然后绘制电路板布局,然后提供组装文档。在提出最终产品的想法时,我们不只是开始抓取零件并将其焊接在一起。
在开始实际编码之前,我不明白在没有大量准备工作的情况下如何用15KB或15MB程序编写高效代码。