notebooks
  • notebooks
  • _planning
    • 2022 OKR
    • basketball
    • swimming
  • communication
    • Dubbo
    • Kafka
    • Messaging
    • RPC
    • Thrift
  • computation
    • map-reduce
  • cs-basic-knowledge
    • computer-architecture
    • data-structure-and-algorithms
    • networks
    • os
  • devops
    • Docker
    • Linux
    • Prometheus
    • operations
    • security
    • trouble-shooting
  • distributed-knowledge
    • Zookeeper_CMD
    • distributed-system
  • game-engine
    • Unity
  • others
    • appium使用
  • protocols
    • http(s)协议
    • 官方链接
    • sip
  • storage
    • Elasticsearch
    • GuavaCache
    • MySQL
    • MySQL_CMD
    • NoSQL
    • Redis
    • Redis_CMD
  • system-design
    • system-design
  • tools
    • Git
    • IDEA
    • Mac
    • VScode
    • Vim
  • _working
    • doc-template
      • backend-design-review
      • correction-of-error
      • service-review
    • process
      • domain-backup
      • oncall
  • blogs
    • history
      • 8088/8086微处理器
      • 8088/8086指令系统
      • CSS-DOM
      • CSS定位
      • CSS工作原理
      • CSS控制背景
      • CSS浮动布局
      • CSS盒模型
      • Chrome开发者工具使用方法
      • DOM
      • Django Model模型层学习
      • Django-REST-framework Serializers学习
      • Django-REST-framework Views和ViewSets学习
      • Django View视图层学习
      • Gvim下Emmet安装及使用教程
      • HTTP协议简介
      • HashMap原理初探
      • JavaScript简史
      • JavaScript语法
      • Java内存模型和GC机制
      • Java基础——Lambda学习
      • Java基础——方法引用
      • Java基础——枚举类型
      • Java类加载机制
      • KMP算法
      • Kafka学习
      • Linux下用命令行编译Java程序
      • MathJax简介和基本用法
      • Python实现常见数据结构
      • Python装饰器总结
      • TCP协议的三次握手和四次挥手
      • Thrift学习
      • asyncio学习
      • markdown的常用语法
      • 修改hosts文件实现翻墙
      • 充实文档的内容
      • 关系数据库
      • 关系数据库标准语言SQL(一)
      • 关系数据库标准语言SQL(二)
      • 关系数据理论
      • 关系查询处理和查询优化
      • 内联元素和块级元素
      • 剑指offer算法题练习
      • 动态创建标记
      • 图形化用户界面
      • 在Eclipse中使用Maven构建Java Web项目
      • 增加微博秀遇到的一些问题
      • 处理机调度
      • 如何用github和hexo搭建个人博客
      • 存储管理
      • 存储系统的层次结构
      • 学习模仿lionhit网站首页的过程总结
      • 实用的GitHub小技巧
      • 并发控制
      • 循环与分支程序设计
      • 指令系统的设计
      • 指令级并行及其开发——硬件方法
      • 搭建自己的VPN服务器
      • 操作系统用户界面
      • 数据库安全性
      • 数据库完整性
      • 数据库恢复技术
      • 数据库绪论
      • 数据库编程
      • 数据库设计
      • 数据抽象
      • 文件系统
      • 文法和语言
      • 最佳实践
      • 案例研究:JavaScript图片库
      • 案例研究:图片库改进版
      • 汇编语言程序格式
      • 汇编语言程序设计基础知识
      • 流水线技术
      • 深度优先搜索和广度优先搜索
      • 牛客网——网易2017秋招编程题集合
      • 用JavaScript实现动画效果
      • 第一篇博客
      • 经典排序算法总结(Java实现)
      • 经典查找算法总结(Java实现)
      • 综合示例
      • 编译原理引论
      • 背包、队列和栈
      • 虚拟机安装Linux系统及常用软件
      • 计算机操作系统绪论
      • 计算机系统结构的基础知识
      • 设备管理
      • 设计模式之代理模式
      • 设计模式之单例模式
      • 设计模式之工厂模式
      • 设计模式之策略模式
      • 设计模式之观察者模式
      • 词法分析
      • 进程管理
      • 闭包
      • 阻止Google自动跳转到香港服务器的方法
      • 项目部署过程
  • programming-language
    • C#
      • C#
    • C&C++
      • C
    • C&C++
      • C++
    • Java
      • GoogleGuice
    • Java
      • JVM
    • Java
      • Java
    • Java
      • Maven
    • Java
      • Mybatis
    • Java
      • Spring知识
    • Java
      • SpringBoot
    • Java
      • Tomcat
    • Python
      • Python
    • Shell
      • Shell
  • wheels
    • dcc
      • 产品调研
      • 方案设计
    • red-envelope
      • 方案设计
    • short-url
      • 短链接服务
    • sso
      • 方案设计
Powered by GitBook
On this page
  • 背景
  • 需求
  • 功能性需求
  • 非功能性需求
  • 名词解释
  • 系统现状
  • 技术方案
  • 前提假设
  • 方案细节
  • 成功指标
  • 替代方案
  • 方案XXX
  • 方案XXX
  • 优缺点比较
  • 运维监控
  • 方案缺陷
  • 任务拆分和排期
  • 测试方案
  • 上线方案
  • 常见问题
  • 附件
  • 评审记录
  1. _working
  2. doc-template

backend-design-review

后端技术方案模板

什么工作需要技术方案:

  • 调研、方案制定和开发(不包含测试上线)耗时在 x 天及以上时

  • 特殊情况,一旦修改出错影响面很广时

备注:

  • 设计方案前先调研业界优秀解决案例

  • 方案设计一定是长期目光,避免为了短期效益给系统造成长期损害

  • 方案设计避免重复造轮子,多看下开源或者公司提供的好用的轮子

  • 方案也会对外公布,会反应出我们组以及方案制定者的一个技术形象和技术能力

  • 模板是一个比较完整的方案,可根据自己需求和方案特点,按需选择模板内容。

以下为技术方案模板内容:


背景

(描述业务问题,同时提供需求文档链接)

需求

(从两方面描述需求)

功能性需求

(指那些需要和PM对齐的需求)

非功能性需求

(如系统响应时间、可用性几个点、安全等)

名词解释

(通俗解释方案中的一些专有名词,或对某些词加下备注或限定范围)

系统现状

(当前系统架构、核心流程,让读者快速熟悉该系统,尤其是需求涉及的那部分)

技术方案

(你调研后认为的最合适的正式方案)

前提假设

(该方案有哪些前提,如必须上游系统保证足够高可用性)

方案细节

(流程图、数据模型、API、如何解决需求的)

成功指标

(哪些指标能够反馈该方案是否成功)

替代方案

(调研过程中一些被抛弃的方案)

方案XXX

(描述弃用方案)

方案XXX

(描述弃用方案)

优缺点比较

(比较所有弃用方案和正式方案各类优缺点)

正式方案
方案xxx
方案xxx

可用性

可扩展性

复杂性

耗费人力

xxx

运维监控

(监控告警、机器型号和申请、服务运维)

方案缺陷

(正式方案会给系统带来哪些缺陷,如何规避)

任务拆分和排期

(将方案拆成独立可执行小任务,并估算人力)

模块
子任务
工作量(天)
排期
状态

模块xxx

测试方案

(单测、集成测试、手动测试case等等)

上线方案

(上线需要哪些步骤,如数据库修改sql、等待上游系统xxx先上线;以及上线出现问题如何回滚;以及上线后如何验证,如手动测试、或观察xxx指标)

常见问题

(提前作为读者想下大家会问哪些问题,以及上面哪些点没讲清楚适合放在这部分)

附件

(贴上调研、引用文档的链接)

评审记录

2022/1/10

  • 评审结论:该方案评审通过 / 该方案需要确认xxx后再次评审

  • 会议纪要:xxx

  • 跟进项:xxx

Previousdoc-templateNextcorrection-of-error

Last updated 3 years ago