当前位置:首页 > 科技  > 软件

手把手教你写设计方案,你学明白了吗?

来源: 责编: 时间:2023-12-06 09:19:17 380观看
导读背景假设你负责一个礼物系统的开发,领导给你分配一个技术需求,给系统的送礼接口,实现幂等。于是你开始写技术方案...目的本文档旨在概述如何设计幂等,以确保礼物系统中的送礼接口具有幂等性。用例图用例图(Use Case Diagra

背景

假设你负责一个礼物系统的开发,领导给你分配一个技术需求,给系统的送礼接口,实现幂等。于是你开始写技术方案...9Bj28资讯网——每日最新资讯28at.com

目的

本文档旨在概述如何设计幂等,以确保礼物系统中的送礼接口具有幂等性。9Bj28资讯网——每日最新资讯28at.com

用例图

用例图(Use Case Diagram):是软件工程中的一种行为模型,用于描述系统的功能需求和用户与系统的交互。它展示了系统中的不同用户(或角色)和系统功能之间的关系,以及各种用例(功能需求)的交互关系。9Bj28资讯网——每日最新资讯28at.com

用例图一般包含这三要素:9Bj28资讯网——每日最新资讯28at.com

  • 参与者:表示与系统交互的外部实体,可以是用户、另一个系统或外部设备等。它们以符号形式表示,通常是一个人的轮廓图标。
  • 用例:表示系统提供的各种功能或服务需求。每个用例都描述了一个系统的功能,它以椭圆形图标表示,并与参与者之间通过连线连接。
  • 关系:用例图通过连线(箭头)表示参与者和用例之间的关系,通常表示参与者和用例之间的交互行为。

回到幂等方案处理,我们这么写用例图:9Bj28资讯网——每日最新资讯28at.com

图片图片9Bj28资讯网——每日最新资讯28at.com

时序图

时序图(Sequence Diagram)是软件工程中的一种行为模型,用于描述对象之间的交互和消息传递顺序。它展示了对象之间交互方式。我们一般方案设计的实现细节,都体现在时序图。9Bj28资讯网——每日最新资讯28at.com

要素解释:9Bj28资讯网——每日最新资讯28at.com

  • 对象(Object):在时序图中表示系统中的各个对象或参与者,可以是类、实例、角色或系统组件等。它们用矩形框表示,并在顶部写有对象名称。
  • 生命线(Lifeline):每个对象下方有一条垂直的虚线,称为生命线,表示对象存在的时间段。生命线上方的箭头表示对象的生命周期。
  • 消息(Message):表示对象之间的通信或交互,以箭头的形式从一个对象向另一个对象传递,指示消息的传递方向。消息可以是同步消息、异步消息、返回消息等,箭头上方标注了消息的类型和内容。
  • 激活(Activation):在生命线上方,表示对象正在执行操作时的时间段,通常用竖直的方块或者压扁的椭圆形表示。

比如送礼的幂等处理逻辑,就可以体现在以下的时序图:9Bj28资讯网——每日最新资讯28at.com

图片图片9Bj28资讯网——每日最新资讯28at.com

流程图

流程图,通常被用来描述一个过程、系统或活动中的步骤和流程。它一般用于把一些分支体现出来,以方便更好体现设计方案。比如送礼接口的幂等方案,用流程表现如下:9Bj28资讯网——每日最新资讯28at.com

送礼幂等处理流程图送礼幂等处理流程图9Bj28资讯网——每日最新资讯28at.com

状态图

状态图是一种图形化的建模工具,用于描述系统中一个特定对象的各种状态以及它们之间的转换和事件触发。比如回到我们幂等处理这个方案设计,这个幂等表的状态,就可以用一个状态图来表示。9Bj28资讯网——每日最新资讯28at.com

图片图片9Bj28资讯网——每日最新资讯28at.com

幂等表状态图9Bj28资讯网——每日最新资讯28at.com

  • INIT: 幂等表插入的时候,就是初始化状态
  • SUCCESS: 如果送礼的业务逻辑处理成功,就更新为成功状态
  • FAIL: 如果送礼的业务逻辑处理失败,幂等表就更新为失败状态

数据库设计

对于写方案设计,数据库这块是比较重要的,尤其我们是后端开发。一般来说,你的表是如何设计的,就把ER图放出来。如果你的方案只是修改原有的一些数据库表,比如加字段、加索引等等,只需要突出就行。9Bj28资讯网——每日最新资讯28at.com

比如我的送礼幂等方案,我的ER图就是这样的:9Bj28资讯网——每日最新资讯28at.com

图片图片9Bj28资讯网——每日最新资讯28at.com

因为没有其他表跟它关联,所以这个ER图只有一个单表。9Bj28资讯网——每日最新资讯28at.com

接口文档

请求方式: POST9Bj28资讯网——每日最新资讯28at.com

接口名称: 送礼接口9Bj28资讯网——每日最新资讯28at.com

请求参数:9Bj28资讯网——每日最新资讯28at.com

图片图片9Bj28资讯网——每日最新资讯28at.com


9Bj28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-38515-0.html手把手教你写设计方案,你学明白了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 优化技巧:如何加快Spring项目启动速度

下一篇: 详解JDK动态代理和CGLib动态代理

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 8月总票房已突破10亿!《封神》第一:口碑已经成了

    8月5日消息,据灯塔专业版数据,截至8月5日9时35分,8月总票房(含预售)已突破10亿。其中,《封神》以大比分的优势领先。根据官方消息,目前该片总票房已经超过14.
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
Top