日常项目技术方案脉络

news2025/1/11 22:59:03

开篇引砖

软件在其生命周期中,当其进入稳定期后,大部分时间都处于迭代更新维护阶段。在这漫长的三年甚至五年的存活期内,我们需要面对林林种种大大小小的需求。今天我们就聊聊在这段期间,如何快速产出一份合格的技术方案。

方案给谁看?

1、产品经理,从方案中确认系统功能是否可以覆盖产品需求,以及系统间交互是否符合前期讨论结果。

2、开发人员,通过方案,对系统改动有明确的全景影像,对具体的改动点能从中获取详细的实施方案以及明确的注意事项提醒,尽可能减少实施过程中出现方案较大的变动。

3、测试人员,通过方案了解本次系统改动点,明确测试所需覆盖面,从而产生相应的测试用例,后续再反向与开发人员确认测试用例的合理性、可行性以及全面性。

4、新进者或接盘侠,从文档中企图窥探系统演变过程。

技术方案脉络

日常项目周期基本为两周(开发->测试->发布上线),其中技术方案设计基本上必须在一到两天内完成,在这两天内需要完成的工作包括但不限于,产品方案疑难点二次沟通-->相关系统流程梳理确认-->技术方案输出落地-->技术方案评审等等。在这种技术时间极度压缩的情况下,我们常把软件工程学里面提及的概要设计和详细设计做有机结合,力求通过一份方案,既能让产品经理读懂,又能让测试产出测试用例,同时开发人员也可以根据方案快速开展系统改造工作。

为了满足以上诉求,我们必须让技术方案拥有清晰的脉络,一份合格的技术方案,我认为应包含以下几个不可或缺的内容,包括方案的背景及目标系统数据流交互概述系统功能改造点描述数据库变更详细描述前端接口交互文档、以及开发工作分工等等。下面我们逐一探讨下各个模块应该输出怎样的内容。

1、方案背景

技术方案的背景及目标应来自于产品需求,但有别于PRD的业务需求背景及目标,需要清晰的描述产品需求达成的技术路径及方法,另外,可以预估产出一些可量化的指标,类似运营操作效率可提升30%等等。

2、系统数据流交互概述

完成了方案背景的阐述,接着为读者奉上一张系统交互全景图会是是一个很好的选择,让读者能从上帝的视角对技术方案有个全面的认知。我们可以选择跨职能流程图为载体,通过图例清晰描述需求参与方(系统及组件)及其所涉及的功能点。另外通过流程交互图,也可以让业务数据的流转清晰可见。系统流程交互全景可参考下图表述:

3、系统功能改造点详述

完成了整体的概述,接下来我们就需要对各个开发功能点做详尽的描述。如何清晰的描述各个功能点,我个人觉得可以通过三个方面的内容表述,包括关于需求点的描述、涉及改动域、改动点详述(清晰描述涉及变更接口以及变动点)。如下图所示,图中所含内容应该已可以支持进入实际开发工作。

4、数据库变更详细描述

该部分应该详细记录数据库变更的内容,包括但不限于DML、DDL相关脚本。该部分内容在日常工作中,常常成为设计评审中重点评审的内容,各位评审官常纠结于库表及其字段的命名而欲罢不能。所以极尽可能的深入考虑以及详细描述,将极大可能的有助于技术方案评审工作的顺利进行。

5、前端接口交互文档

目前普遍采用前后端分离合作模式,详尽的前端接口文档,除了有助于前端提前介入开发外,更重要的是能让前后端双方开发人员更早的达成共识,更大的促进项目的推进。

交互文档可提供如下示例相关内容,包含了具体的接口入参及返回报文的详细描述,报文中所涉及字段必须清晰标注含义。

6、开发工作分工

该部分内容用于项目进度管理,需要详细列出各项分工、工作描述、相应负责人以及项目阶段标识。可参考如下示例:

总结

全文建议一份合格的技术方案,应该包含六个方面的内容:方案的背景及目标系统数据流交互概述系统功能改造点描述数据库变更详细描述前端接口交互文档、以及开发工作分。那这样子的方案是否能成为日常合格的技术方案呢?我们可以顺着方案的脉络纵向横向分别切割分析。整个技术方案所包含的内容,纵向采用总分的方式让参与者从面(整体的系统数据流交互)到点(各个功能点改动),逐步深入理解整个技术开发实施方案。同时,横向既按参与者维度清晰划分了各个参与方的工作点,不限于前后端开发人员,也从技术栈维度出发,列出各个技术点所需变更内容。个人觉得应值得各位参考尝试。

后记

在软件的完整生命周期内,每一次迭代都会产生相应的技术方案,这些方案很有可能是需求前后关联相互影响,如何让这些迭代能有序的完整记录下来,形成有序的历史脉络,目前仍未找到较好的办法。

by:江

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

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

相关文章

JavaScript经典教程(一)-- HTML基础部分

179:HTML基础部分(元素分类、特性、特殊元素等) 1、复习: HTML: 超文本标记语言 CSS: 层叠样式表 JavaScript: 脚本语言 http:超文本传输协议 https: 经过ssl加密的超…

如何搭建关键字驱动自动化测试框架?这绝对是全网天花板的教程

目录 1. 关键字驱动自动化测试介绍 2. 搭建关键字驱动自动化测试框架 步骤1:选择测试工具 步骤2:定义测试用例 步骤3:编写测试驱动引擎 步骤4:实现测试关键字库 步骤5:执行测试 3. 实现关键字驱动自动化测试的关…

c/c++:gets(),fgets(),puts(),fputs(),strlen(),字符串拼接函数

c/c:gets(),fgets(),puts(),fputs(),strlen(),字符串拼接函数 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知道的周…

C语言程序环境与预处理回顾总结

大概讲解与铺垫 首先,什么叫c语言的源代码?也就是我自己写的.c文件里面的代码,这个就叫做源代码。然后需要知道的是计算机他只认识二进制,因此他只能接收与执行二进制指令。也就是可执行的机器指令。然后我们必须得知道&#xff…

JavaWeb——tomcat(安装使用)

目录 WEB服务器-Tomcat 服务器概述 Web服务器 Tomcat Tomcat下载 安装与卸载 启动与关闭 WEB服务器-Tomcat 服务器概述 服务器硬件: 指的也是计算机,只不过服务器要比我们日常使用的计算机大很多。 服务器,也称伺服器。是提供计算服务…

【数据结构】第十一站:链式二叉树

目录 一、二叉树的创建 二、二叉树的遍历 1.前序中序后序遍历 2.层序遍历 三、二叉树的节点个数以及高度等 四、二叉树的构建和销毁 五、DFS和BFS 一、二叉树的创建 为了方便后面的讨论,我们在这里先手撕一颗二叉树 typedef int BTDateType; typedef struct …

Qt Designer

Qt Designer——即Qt设计师,是QT项目开发的可视化图形界面编辑器,通过设计师可以很方便地创建图像界面文件*.ui,然后将ui文件应用的源代码中,做到所见即所得,让界面的设计变得十分简单。下面介绍Qt Designer的简单使用…

使用PowerShell自动部署ASP.NetCore程序到IIS

asp.net core 安装asp.net core sdk https://dotnet.microsoft.com/en-us/download/dotnet/3.1 创建asp.net core项目 dotnet new webapi运行项目 访问https://localhost:5001/WeatherForecast iis配置 安装iis 以管理员身份运行powershell Enable-WindowsOptiona…

【计算机网络】学习笔记:第二章 物理层(五千字详细配图)【王道考研】

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

Windows中Seata连接Linux中的nacos的配置

目录 前言&#xff1a; Seata配置教程&#xff1a; file.conf: ​编辑 配置代码&#xff1a; registry.conf: ​编辑 nacos-config.sh: config.txt: 前言&#xff1a; 许多博主&#xff0c;把两个软件都安装在同一个系统中&#xff0c;但是有些人估计是装在不同的环境下…

支付系统设计:收银台设计二

文章目录 前言1. 接口校验1.1 Chains1.2 Checker1.2.1 AbstractChecker1.2.2 TokenChecker1.2.3 OrderChecker1.2.4 UserInfoChecker1.2.5 BaseInfoChecker1.2.6 SignChecker 1.3 ApiFilter 2. 下单3. 收银台首页2.1 OrderInfoResolver2.2 UserBaseInfoResolver 4. 执行流程总结…

企业宁愿花 15K 重新招人,也不愿意花 10K 留住老测试员?

金三银四即将进入尾声&#xff0c;大家逐渐收敛了跳槽涨薪的想法&#xff0c;准备收收心等待过年。不置可否&#xff0c;年后必定又是一波跳槽季&#xff0c;通过跳槽才能涨薪已经成为了不少求职者内心默认的定理。 不知道什么时候开始&#xff0c;公司不能满足加薪的要求&…

leetcode 812. 最大三角形面积

题目 给你一个由 X-Y 平面上的点组成的数组 points &#xff0c;其中 points[i] [xi, yi] 。从其中取任意三个不同的点组成三角形&#xff0c;返回能组成的最大三角形的面积。与真实值误差在 10-5 内的答案将会视为正确答案。 示例 1&#xff1a; 输入&#xff1a;points [[…

手把手带你实现通讯录C语言

通讯录大家都很熟悉了&#xff0c;一个联系人包括姓名&#xff0c;年龄&#xff0c;性别&#xff0c;电话&#xff0c;地址等&#xff1b; 那我们想一想我们所学的数据类型&#xff08;int,float,double等都是单一的相同类型 &#xff08;属于内置类型&#xff09;&#xff09;…

#详细介绍!!! 造成死锁的原因以及解决方案!

本篇主要是介绍什么是死锁&#xff0c;已经死锁产生的原因&#xff0c;如果避免死锁。根据上述的几个问题让我们来阅读本篇文章。 目录 1. 什么是死锁 2. 形成死锁的原因&#xff08;四个必要条件&#xff09; 3. 如果有效避免死锁 1. 什么是死锁 死锁主要是锁彼此间进行锁等…

FPGA实现JPEG-LS图像压缩,有损无损可配置,提供工程源码和技术支持

目录 1、前言2、JPEG-LS图像压缩理论3、JPEG-LS图像压缩性能介绍4、JPEG-LS图像压缩时序介绍5、JPEG-LS图像压缩输出压缩流6、工程源码和仿真7、福利&#xff1a;工程代码的获取 1、前言 JPEG-LS&#xff08;简称JLS&#xff09;是一种无损/有损的图像压缩算法&#xff0c;其无…

1 Go语言开发环境搭建详细教程【Go语言教程】

Go语言开发环境搭建【Win、Linux、Mac】 1 SDK下载 官网地址&#xff1a;golang.org,因为一些原因国内可能无法访问。可以使用下面第二个链接。国内地址访问&#xff1a;https://golang.google.cn/dl或者https://www.golangtc.com/download 根据自己操作系统版本&#xff0c;下…

30天学会《Streamlit》(9)

30天学会《Streamlit》是一项编码挑战&#xff0c;旨在帮助您开始构建Streamlit应用程序。特别是&#xff0c;您将能够&#xff1a; 为构建Streamlit应用程序设置编码环境 构建您的第一个Streamlit应用程序 了解用于Streamlit应用程序的所有很棒的输入/输出小部件 第9天 - …

超高精度PID控制器的特殊功能(4)——分程控制功能及其应用

摘要&#xff1a;分程控制作为一种典型的复杂控制方法之一&#xff0c;常用于聚合反应工艺、冷热循环浴、TEC半导体温度控制、动态平衡法的真空和压力控制等领域。为快速和便捷的使用分程控制&#xff0c;避免采用PLC时存在的控制精度差和使用门槛高等问题&#xff0c;本文介绍…

pyqt6+vtk

这里用PyQt6vtk9.2.6 pip install PyQt6 pyqt6-tools vtk这里拉了一个水平布局 然后水平布局中加入QWidget&#xff0c;object name改为vtkWidget 右键Promote Widgets Promoted class name: QVTKRenderWindowInteractor Header file: vtkmodules.qt.QVTKRenderWindowInterac…