如何撰写好的技术方案设计-真实案例干货分享

简介: 如何撰写好的技术方案设计-真实案例干货分享

一、 前言

作为一个技术开发者,特别是高级、资深开发、架构师等,往往会遇到根据需求撰写技术方案。那么如何撰写一篇好的技术方案设计,我们今天就来聊一聊这个话题。


二、 技术方案是否有必要

答案是肯定的。

我见过太多由于前期规划不到位(甚至是没有技术方案设计,开个技术讨论会口头沟通一下,就直接评工期开干的),这其中不乏很重要,工期很长的项目。而最后呢,到联调阶段各组串不起来,更可笑的是,产品和产品同学之间都没沟通清楚。导致最终很被动,到处挖坑补洞,而且花费了更多的时间和精力,甚至导致项目延期,后续扩张性不强等等问题。

所以我认为,技术方案是必不可少的一个环节。往往很多坑在这个阶段就可以避免的。

古人云:"磨刀不误砍柴工",技术方案就是磨刀的过程。


三、 如何写好技术方案

1.要贴合需求,满足需求是大方向。

2.可实施。要考虑当前条件下是否可落地,如:

  • ·团队人员接受能力:技术选型的时候,要考虑团队成员接受能力,盲目引入新技术,可能造成不可预知的问题。
  • ·时间成本:  一般来说Java 或者 PHP 后端项目(c语言项目可能会做一年甚至更长时间),3个月时间周期算是比较长的了,假如按照此方案,需要半年甚至更长时间,那可能也不切实际。
  • ·资源成本: 例如,项目可能需要引入Redis,Mysql,ES, MongoDB 等基础资源,那公司是否能提供这些资源(服务器是要钱的)。如果不能,在写技术方案时候,可能就需要考虑是否有替代方案。

3.应急处理&可靠性保障 只要人能想到的问题,就一定会发生,不能有侥幸心理。所以要做好出现问题的应对策略,这里就必须做好如:

  • ·灰度方案
  • ·降级方案
  • ·异常处理
  • ·容量评估

四、技术方案模板

下面是我总结的技术方案设计模板,希望对大家所有帮助。

1、背景

目前的背景现状,简要说明以往业务所遇到的问题,给出本次项目迭代的原因,解决的技术痛点或业务痛点


2、目标

通过次方案要达到什么样的业务指标,例如,支撑多少QPS,性能相比现在提升多少倍,为后期水平扩展做铺垫


3、整体方案

1)架构图 2)流程图 3)时序图 4)调用链路图


4、存储设计

如Mysql表结构设计,缓存设计,ES存储设计等等,说明Schema、字段类型、默认值、描述信息等。


5、接口定义

列举出接口的结构,参数,返回值等


6、灰度方案

按什么方式灰度,如何做灰度方案,用表格的形式列出分几个阶段灰度,每个阶段大概时间多长。


7、降级方案

当出现问题如何降级操作,如何回滚。将风险降到最低程度。


8、关联系统(功能)影响

重点需要各组注意的地方,相关人员需要特别关注,一一确认到位


9、资源分配情况
  • 人力资源: 实现方案需要多少人力投入(开发人力,测试人力,运维人力)等。
  • 硬件资源: 实现上述方案,列举需要哪些物理机器资源,运维人员需提前准备。


10、预估工期及时间节点

列举出工期及关键时间节点,如,什么时候联调,什么时候提测,什么时候开始灰度上线,以及后续的迭代完善计划等。


五、温馨提示

我也给大家总结了我之前做系统重构写的技术方案设计文档(线上真实版本,已脱敏),给大家总结了2套, 有需要的朋友可以公众号后台留言"方案"即可获取,也欢迎有兴趣的朋友一起交流学习。


相关文章
|
2月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
46 5
|
5月前
|
监控 安全 测试技术
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解
|
缓存 搜索推荐 NoSQL
150 混合推荐系统案例(项目开发)
150 混合推荐系统案例(项目开发)
110 0
|
前端开发
「前端经验总结」大型业务项目中,前端如何撰写设计文档
设计文档可以帮助开发梳理业务功能,呈现优质的开发思维的载体。另外,当开发思路逐渐丰富,开发速度也就提上来了。所以本篇分享笔者前端的开发中尤其是大型业务项目,是如何撰写设计文档的。
1402 1
|
监控 安全 项目管理
如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!
如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!
331 0
|
供应链 算法 数据挖掘
谈谈预后性分析是预测性分析的有益补充
预测分析是企业展望未来的主要应用方式。市场营销、零售、生产、设备管理、供应链管理以及许多其他应用都显示出预测的价值和力量,可以作为预测未来结果的工具。
谈谈预后性分析是预测性分析的有益补充
|
监控 JavaScript API
移动端项目实践方法提炼知识总结
移动端项目实践方法提炼知识总结
移动端项目实践方法提炼知识总结
|
缓存 前端开发 NoSQL
笔记整理:技术架构涵盖内容和演变过程总结
单体架构 2. 应用与数据库分离 3. 使用缓存抗量 4. 多应用部署和Nginx反向代理 5. 数据库读写分离 6. 应用分组部署 7. 应用分库设计 8. RPC 分布式部署 9. 应用细分和网关引入 10. 低代码编程和可复用
340 0
笔记整理:技术架构涵盖内容和演变过程总结
|
弹性计算 监控 NoSQL
某口罩项目架构演进记录&优化经验分享
疫情初期某地政府决定发放一批免费口罩面向该市市民,该市市民均可免费预约领取,预约时间为早上9点-12点,因此该场景为限时抢购类型场景,会面临非常大的定时超大流量超大并发问题,在该项目的落地过程中,涉及的架构演变,做了一些记录和思考
某口罩项目架构演进记录&优化经验分享
|
SQL 存储 分布式计算
“开源”vs“商业”,差别到底有多大?这篇测试一目了然
来自用户的声音… 开源就能搞定,还要选商业方案吗? 我是小白用户,开源方案上手快吗? 性能有极致要求,开源能满足吗? 追求性价比,哪种方案更适合我? 我对MySQL很熟悉,数据分析场景适合吗? 上述问题如何解?看阿里云帮你对比分析!
15180 0
“开源”vs“商业”,差别到底有多大?这篇测试一目了然