程序员画图的痛点 各个图形怎么对不齐啊? 这个在线服务怎么要收费啊? 只能免费画这么几张图? 现在没网了, 用不了啊! 同事画的图的逻辑比较老了, 现在业务迭代了, 已经跟最新的逻辑对不上了, 但是他只留了张图啊, 我怎么改啊? 诶, 重新画吧 这个项目的设计图在哪里呀? 找不到, 唉, 看代码慢慢摸索吧. 好不容易找到设计图了, 怎么是个在线的地址, 点进去, 已经404了啊 图的选择: 什么场景画什么图? 架构图 软件开发过程中,开发人员可以使用技术架构图来描述软件的整体架构,包括不同模块、组件和服务之间的依赖关系。这样,开发人员可以更好地理解系统的结构,并能够更好地进行开发和维护。此外,技术架构图还可以用于帮助开发人员诊断和解决系统中的问题。
适合场景
给不懂技术的人演示, 展示公司技术实力 介绍系统总体组成, 表现整个系统包含哪些服务, 让看的人有个点和面的印象. 其实跟实际代码开发过程没有什么重要关系. 在设计一个新系统的时候, 必须使用架构图. 不适合的场景
需要表现一个具体的功能点逻辑 时序图 时序图是一种UML交互图,用来描述对象之间发送消息的时间顺序和动态协作。它可以表示用例的行为顺序,每条消息对应一个类操作或状态机中的触发事件。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。时序图也可以用来对一个场景下的对象交互建模,展示了系统的不同部件的执行序列。
时序图适合表现对象之间的动态协作和时间顺序。例如,它可以用于描述系统中不同部件之间的交互。
适合场景
业务逻辑中涉及到其他组件,其他服务的交互时, 使用时序图展示较好; 如tcp连接过程, 数据包流传 再排查bug,性能优化时能帮助定位是哪里的可能出现问题及出现性能瓶颈 不适合场景
需要表现业务逻辑判断的场景 需要表现整体架构的场景 补充:
时序图反映了一系列对象的交互与协作关系,清晰立体地反映系统的调用纵深链路。
时序图的核心元素包括:参与者(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等。
顺序图的语法和功能
PlantUML序列图的语法:你可以有几种类型的参与者(演员和其他人),箭头,音符,组…改变字体和颜色也有可能。
https://plantuml.com/zh/sequence-diagram
微信支付时序图(经典)
流程图 流程图是一种图表,用于表示过程或工作流程。在软件设计中,流程图通常用于可视化软件算法或程序中涉及的步骤。它们可以帮助开发人员识别设计中潜在的问题和低效性,并计划和优化程序的逻辑和结构。流程图通常使用标准符号和形状来表示不同类型的操作、决策和输入。
适合场景
适合表达一个具体的功能点逻辑, 这个一般会要求产品文档就得写好, 研发只需要在此基础上补充一些判断逻辑. 不适合场景
涉及数据流转的场景表现不佳 无法进行整体系统介绍, 只能表现具体功能点 状态图 状态图常用来表示某个对象的状态流转, 因为可能包含很多状态, 而不同状态之前可能不能任意转换, 因此使用状态图表示可能的路径, 在编程时可以规避BUG
...