设计文档中的流程图,靠得住吗?

简介: 本文讨论了软件开发设计文档中图形化设计图的重要性,如流程图、思维导图等,它们有助于清晰传达设计意图和提高沟通效率。然而,当面临迭代更新、人员变动时,基于截图的图形设计图可能会带来协作难题。作者提倡使用简单文字格式搭配标签和符号作为替代方案,分享了团队内部实践,通过表格来实现类似思维导图和流程图的功能,以增强文档的可维护性和协作性。同时,作者强调这不是反对使用设计图,而是提出在某些场景下的一种有效补充方法。

先别被标题误解。流程图、系统调用关系图、状态图、业务流程图、业务时序图,还有思维导图、架构部署图、用例图、类图,等等,这些是我们的软件开发设计文档的不可或缺的组成部分。这些设计图能够以直观、清晰的方式传达设计意图,使得开发人员、测试人员和利益相关者更容易理解和沟通系统的设计和实现。一个只有文字排版而缺乏设计图的文档可能会显得呆板和难以理解。文字可以提供详细的描述和解释,但对于复杂的系统设计和结构,图形化的设计图能够更直观地展示关键概念、关系和流程。


当前,支持绘制软件设计图的工具不胜枚举,无论是MS Office Visio、MindX软件,还是在线的processOn、小红书、mubu、百度脑图、etc.。

 

我们在编写软件开发设计文档时,通常的做法是,将利用工具或软件绘制好的流程图,截图,然后贴到我们的文档中。互联网开发团队,通常是将设计文档放到内部WIKI上,实现资源共享。

 

不过,你是否遇到过这样的情况?系统需求有新的迭代开发时,业务流程发生变化,需要修改上一版的设计图。而当事开发者不再是上次迭代的开发者,这时,修改上一版设计图的话,如果是电脑软件还好,找前任索要,然后自己修改。而一旦是前任在线绘制的,那会麻烦一些,你可以去让前任登陆进去去完善原始文档,再截图发给你,放到这次需求迭代的设计文档中。虽然一些在线工具支持多人协作,但如果这样的情况经常发生,怕就是个现实的问题了。

再有,开发团队出现人员变更是不可避免的事情,某些同学可能会离开,新的同学又进来。这种情况下,在一个设计图的开发者离开团队后,这个设计稿件将无法完善,只能绘制新的文件版本。


再有,开发人员其实一个闷骚的裙体,大家日常开发配合过程中,沟通并不充分,这也是我们工作中出现的“信息不对称”的因素之一。要指出的是,我们多数开发人员是比较积极的,愿意主动去完善代码,完善文档。如果发现他人或曾经的设计文档中的疏漏,他们会鸟悄地改掉,这实在是优秀的品质。不过,对于图片形式的设计稿截图,就爱莫能助了。

 

我相信以上情况,在每个团队都有发生,每个开发者都有感触。

 

那么,有这些经历,我们就不绘制图形化的流程图了?非也,非也!存在即合理,我们亦不能一刀切。日常研发和团队管理过程中,我本人也经常会设计各种图表。这不仅能让团队里的伙伴直观的理解,我本人也是受益者——上传下达或与其他兄弟组沟通时,我无需拿着白板笔在会议室的白板上一遍一遍地重复书写潦草的字迹。

 

看到这里,大家可能迷糊了,你到底要说什么呢?嘿嘿,我其实是想分享我们的一个最佳实践。我有时更推荐用简单的文字格式,配以适当的标签、符号、html表格,来实现我的设计意图。下面我会列举一些例子。当然,有同学会反问,你这样做的话,岂不是人人皆可修改?是的,不用担心你的设计文档被破坏,开发组中的伙伴不会存在别样的居心。有必要再声明一下,分享这些实践,绝非主张摈弃设计图。对于复杂的业务逻辑,设计图无疑是不可替代的方案。企业应用系统通常具有复杂、多变、庞大的特征,研发团队在持续的需求迭代、系统升级过程中,编写可维护、易维护的文档,是需要引起关注、思考和探索的issue。就像我们编写可维护、易维护的代码一样。这是我所要表达的主旨。


下面的截图案例,均来自我们研发团队在公司内部WIKI上维护的开发设计文档。


🍀下面表格替代了思维导图,依然清晰、直观。

 

🍀下面table有效实现了一个跨职能流程图。


🍀下面table描述了一个简单的流程图。

 

🍀下面table详细说明了业务执行所产生的数据变化形态。

 

🍀下面文字通过tab和箭头,描述了一个功能的程序实现方案。

 

🍀下面时序图是用在线的腾讯文档excel表格设计的,你信吗?

 

 

 

 

🍀感谢阅读。不足之处,还望批评指正!

buguge
+关注
目录
打赏
0
4
7
0
40
分享
相关文章
深入探索C++:特性、代码实践及流程图解析
深入探索C++:特性、代码实践及流程图解析
OneCode2.0源码结构分析
OneCode12月10日正式更新了其V2.0版本。从OneCode的季度版本生命中,可以看到2.0版本还是一个重量级的版本,笔者在收到2.0更新后第一时间下拉了最新的代码。在参考了OneCode 的技术说明后,根据包结构来分析一下OneCode2.0的结构。
《优化接口设计的思路》系列:第二篇—接口用户上下文的设计与实现
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。
138 0
|
9月前
|
用N-S流程图表示算法
用N-S流程图表示算法
352 1
用流程图表示算法
在算法设计和实现的过程中,流程图是一种非常有用的工具,它可以帮助我们清晰地展现算法的逻辑和步骤。通过流程图,我们可以更直观地理解算法的执行过程,发现潜在的问题,并进行优化。本文将介绍如何使用流程图表示算法,并附上一个示例代码及其对应的流程图。
471 0
软件设计实践:如何使用UML完成一个设计文档?
软件设计实践:如何使用UML完成一个设计文档?UML 建模可以很复杂,也可以很简单,简单掌握类图、时序图、组件图、部署图、用例 图、状态图、活动图这 7 种模型图,根据场景的不同,灵活在需求分析、概要设计和详细设计阶段绘制对应的模型图,可以实实在在地做好软件建模,搞好系统设计,做一个掌控局面、引领技术团队的架构师。
375 1
软件设计实践:如何使用UML完成一个设计文档?
超容易上手 - 用代码写简单流程图
超容易上手 - 用代码写简单流程图
201 0

热门文章

最新文章

相关实验场景

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等