技术方案——参考模板

我认为写好一个技术方案,对于开发同学来说至关重要,不仅可以帮助我们做好需求,更能帮助我们锻炼自己的文字功底。


在接手需求时,我们很难做到每一次都对需求的影响面都十分清楚,更多的都是要借助团队的力量,拉齐产品的需求以及需求的影响面之间的信息,即做到正真的理解没有问题,做法没有问题。让相关业务同事放心,产品大大放心,让领导放心,甚至是让自己放心。我认为技术方案评审除了完成对本次需求影响面盘点的评审,还可以同步系统功能变化(需求调整了功能),如果涉及多方人员之间的配合,那么更需要协调人员之间的工作排期,继而保证整体项目的稳步推进。


开发中常见案例就是,开发任务进行到一半,发现之前技术方案中的做法有问题,于是推翻重来,这是我们都不愿意看到的。当然根据我在实际工作中的观察,如果需求影响面很大,基本都无法难盘点到每一个影响点,那问题就变成了如何尽可能多的盘点。


本文亦在分享一个基础版的技术方案模板,让大家在编写技术方案时,能够在一个相对完整的方案流程中,根据自身团队及业务需求的特性,快速上手,提高编写技术方案效率,最终形成自己编写技术方案的方法论。

技术方案模板

    • 一、需求背景
    • 二、术语定义
    • 三、总体方案
      • 3.1 历史状况
      • 3.2 完整流程
      • 3.3 涉及应用
    • 四、系统分析
      • 4.1 用例1 XX支付
        • 1)模型设计
        • 2)业务校验
        • 3)系统交互
        • 4)切流分析
        • 5)兼容分析
      • 4.2 用例2 XX退款
    • 五、风险评估
    • 六、稳定上线
      • 6.1 可监控
      • 6.2 可灰度
      • 6.3 可回滚
    • 七、测试建议
    • 八、参与人员
    • 九、发布计划

一、需求背景

背景描述、业务约束,来源于PRD,可直接贴prd文档

无需求评审,可自己自由发挥



二、术语定义

可选,对项目中出现的一些专业词汇进行解释,拉齐信息差。

术语说明



三、总体方案

附上架构方案文档地址或PPT。架构方案要阐述清楚系统视角的完整业务流程,全链路上将有哪些域需要参与进来,它们的协作与分工关系是什么,各域的关键改造点。包括方案设计对各域带来的影响,让大家对此次改造的整体影响面有一个基本的概念。

3.1 历史状况

在《金字塔原理》一书中提到,在解决问题前我们一定要界定清楚问题,界定清楚问题必然就离不开说清楚已有的(现状)和想要的(目标)之间的差距,所以说清楚历史状态是很有必要的。


3.2 完整流程

讲清楚现状,我们可以简单说说我们的目标,根据目标和现状之间的差距,我们开始规划出我们的解决路径,完整流程可以理解为就是对解决路径的一次综述


3.3 涉及应用

1、应用1(主要调整)

改造点

添加xxx业务需求

2、应用2(提供时区接口)

改造点

提供RPC服务,查询数据



四、系统分析

如果是进行业务重构,本节可以调整为侧重对问题的说明,即前文提到的,现状的问题点有哪些,我们的目标是什么,解决路径又是什么

将整体方案拆解为用例,逐个进行详细分析,阐述形式可以自由发挥,建议UML图(时序图,活动图、xmind等),在方案评审会议上,由于时间有限,在其他同事不是特别了解功能细节时,朗读过多的文字反而容易让人抓不住重点,更多的都是一个点一个点,无法形成面的感觉,此时只能靠同事自己在脑中自己去画自己的结构图。当然足够详细的文字描述也同样重要,会议之后就只能靠文档了。我对自己的要求就是,每一次出现成体系的内容描述时,都反问自己一句,如果这里有张图会不会更好?

4.1 用例1 XX支付

对方案实现细节做详细分析,以下内容作为参考

1)模型设计

新增表模型

2)业务校验

相关业务参数约束拦截,如平衡校验、参数格式校验等;

3)系统交互

详述系统交互接口入参、返回参数、调用方式、超时时间、峰值tps等内容;

4)切流分析

系统切流目标、维度条件、依赖关系、切流顺序等内容。

5)兼容分析
  • 同系统

  • 新数据在老代码上运行

  • 老数据在新代码运行

  • 跨系统

  • 新代码请求下游老代码机器

  • 老代码请求下游新代码机器


4.2 用例2 XX退款

同上



五、风险评估

将有可能涉及到资损风险或稳定性风险的改动内容, 在下面逐条说明,并明确应对措施:

  1. XXX
  2. XXX



六、稳定上线

6.1 可监控

针对上述风险,是否可以有效监控、核对发现可能出现的资金安全、稳定性风险。

6.2 可灰度

是否可以进行灰度对比,在灰度期间及时发现问题,尽可能小得影响到线上流量。

6.3 可回滚

发现问题后,配置、代码是否可以及时回滚止血。



七、测试建议

站在开发视角,对测试同学提供建议,如哪些场景需要重点关注。

  1. casexxx 验证;
  2. casexxx 回归。



八、参与人员

开发:XX

测试:XX

需求评估人:XX



九、发布计划

xx.xx开始开发

xx.xx提测

xx.xx预发

xx.xx灰度

xx.xx上线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux驱动(八):block,net

本文主要探讨210的block驱动和net驱动。 block 随机存取设备且读写是按块进行,缓冲区用于暂存数据,达条件后一次性写入设备或读到缓冲区 块设备与字符设备:同一设备支持块和字符访问策略,块设备驱动层支持缓冲区,字符设备驱动层没有缓冲 块设备单位:扇…

淘宝/天猫获取卖出的商品订单列表 API(taobao.seller_order_list)

淘宝和天猫平台提供了一个API接口(taobao.seller_order_list),用于获取卖家出售的商品订单列表。以下是使用该API的基本步骤: 获取API密钥:首先,您需要在淘宝开放平台(Open Platform&#xff09…

五、typescript(内置对象)

四、typscript(类型断言)-CSDN博客 5.1 ES 的内置对象(JS 中有很多内置对象,可以直接在 TS 中当做定义好了的类型) // Boolean、Error、Date、RegExp 等let b: Boolean new Boolean(1); let e: Error new Error(Error occurred); let d: Date new Date(); let …

【iOS】UICollectionView使用

使用UITableView作为表格来展示数据完全没有问题,但仍有许多局限性,对于一些更加复杂的布局样式,就有些力不从心了 比如,UITableView只允许表格每一行只能显示一个cell,而不能在一行中显示多个cell,对于这…

Java设计模式-原型模式(3)

大家好,我是馆长!从今天开始馆长开始对java设计模式的创建型模式中的单例模式、原型模式、工厂方法、抽象工厂、建造者的原型模式进行讲解和说明。 原型模式(Prototype Pattern) 定义 原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对…

【Android】app中阻塞的looper为什么可以响应touch事件

这里,我们考虑一个问题,Android中的应用是一个looper线程,没有任务时就阻塞着,其他线程通过handler调用等方式向主线程looper发送任务, 如果点击应用上的按钮,应用是怎么及时响应的呢, 是专门启…

阿里云国外服务器多少钱一个月?24元/月

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

记一次攻防实战全流程

如果我嚷几声,能叫醒那几个人,你就绝不能说他没有毁坏这铁屋的希望 DMZ区 1、信息收集 首先进行信息收集,使用Nmap对其进行扫描 端口服务:21、22、80、111、888、3306、8888,可以看到目标存在ftp、ssh、http等端口…

idea就改完内存启动不了怎么办

有时候在idea中修改完内存,再重启发现无法启动了,这个一般是设置的不太合理 导致的,接下来我来讲一下在idea之外设置运行内存的方式,以设置合理的运存来正常运行idea: 一、WinE 打开文件夹,进入c盘 二、按…

Python - 异常处理

前言 运行中的程序不知道怎么搞的报错了,恰好没有处理这个报错,程序也随之终止了,有没有什么办法能够让程序报错也能够不崩掉继续运行呢?答案是有的,就是通过异常处理。 什么是异常 异常顾名思义就是不正常&#xf…

SpringBoot注册Servlet、Filter、Listener、Interceptor四大组件

SpringBoot中注册四大组件 文章目录 SpringBoot中注册四大组件1. Servlet注册1. 基于配置类方式使用Servlet使用Servlet方式2. 基于纯注解方式配置Servlet 2. Filter(过滤器)注册1. 以配置类方式注册Filter2. 以纯注解方式注册Filter3. 以注解的方式注册Filter执行顺序不生效问…

记一次多平台免杀PHP木马的制作过程

注意:本文转载自本作者稀土掘金博客 博客地址: 御坂19008号 的个人主页 - 动态 - 掘金 文章目录 前言声明绕过情况使用方法运行环境绕过点介绍技术原理讲解变量传值覆盖模块代码执行阻断模块InazumaPuzzle程序锁定器PerlinNoise危险函数生成与执行类构造…

基于springboot+vue考编论坛

摘要 近年来,随着互联网的迅猛发展,编程论坛成为程序员们交流学术、分享经验的重要平台之一。为了满足广大程序员的需求,本文基于Spring Boot和Vue框架,设计并实现了一个功能强大的编程论坛。首先,我们选择Spring Boot…

Laya3.0 相机使用

摄像机,是3D场景里边最经常使用的对象了。 官方文档:点击这里学习 1.投影 Projection 透视: 模拟人眼的视觉效果,近大远小。模拟物理世界的规律,将眼睛或相机抽象成一个点,此时视锥体内的物体投影到视平…

ChatGPT时代对大数据应用的展望

前言: 2022年底,科技圈有个爆炸性新闻,ChatGPT的诞生,引发了世界范围内的震惊;人工智能在与人交流上有了划时代的技术突破,可以和人深入的理解交流,让许多公司和领域对这项技术有了更多遐想。对…

HAOI2008 排名系统

P4291 [HAOI2008] 排名系统 题目大意 有一个排名系统和 n n n次操作,操作分为以下三种: Name Score:上传一条新的得分记录?Name:查询某个玩家的当前排名?Index:返回某个区段内的排名记录 当某个玩家上传自己最新…

开源项目盘点-学习类

1,freeCodeCamp 地址:https://github.com/freeCodeCamp/freeCodeCamp 描述:一个程序员学习网站,里面有全栈开发、机器学习的相关知识,是完全免费的,该网站有上千道编码挑战题来帮助你来练习你的技能。 提…

ajax的优缺点?

AJAX(Asynchronous JavaScript and XML)是一种使用异步请求来更新网页的技术,它可以在不重新加载整个页面的情况下,通过与服务器交换数据来更新部分网页内容。以下是AJAX的主要优点和缺点: 优点: 提升用户…

Linux———groupadd,groupdel,groupmod命令联合总结(狠狠爱住)

目录 groupadd 命令 groupadd 命令基本语法: groupadd 命令常用选项: 下面是一些示例来演示如何使用 groupadd 命令: groupdel 命令: groupdel 命令基本语法: groupdel 命令常用的选项有: 下面是一…

样本处理之SMOTE算法

1. 少数类别过采样技术SMOTE简介 Synthetic Minority Oversampling Technique,是一种用于合成少数类样本的过采样技术,通过对训练集中的正例进行插值来产生额外的正例。 基本思想: 对少数类样本进行分析,然后在现有少数类样本之间…