技术选型规范文档
# XX技术方案调研/选择
## 背景
简述下,技术调研/选择背景(应用场景),技术原理,目的是什么(为了解决XX问题)?
## 业界主流技术方案列举
* 典型方案及demo实践
* 对比其优缺点
* 是否需要做方案优点整合?
## 在实践Demo中遇到的典型问题
* 阐述:问题 && 原因 && 解决方案
## 最终选择该方案的亮点
* 阐述目前方案的较业界的优点,或者说优化了某个缺点
* 可以从复用性,功能/兼容性等角度
## 可能存在的问题
* 预估存在的风险(后期的优化规划)
## 方案评审
* 若项目较大或较无把握,可以开一个方案评审会议
技术设计文档规范
# 技术方案设计
> 根据具体的项目复杂度,进行项目合理的技术设计。(此设计纬度,仅限前端)
⚠️⚠️⚠️ 注意:
1. 技术设计尽可能的基于目前公共资源,如果发现有设计不合理的地方,可以反馈公共支撑组优化
2. 如果公共资源没有的方案,尽可能的抽取出可公用的部分,返哺给公共组。
## 概要设计
### 架构图
目的:加深对整体的结构足够了解(可以向pm、qa和rd咨询了解)
### 项目基础结构图
目的:对项目的目录/功能结构加深理解
### 流程图
流程图是面向过程的,用于描述一个算法或者业务的过程。
目的:明确业务范围,明确我们到底要做什么,不做什么,帮助识别边界。
## 详细设计
### 时序图(交互图)
目的:根据不同的视角看问题,可以从用户的角度,切身思考🤔会遇到的问题,从而优化用户体验。
### 开发&测试用例-思维导图
目的:梳理需求文档,细化文案、设计和交互功能,每个case,防止文档遗漏。
README规范
# 项目名
## 简介(Introduction)
这里可以把项目背景简单介绍下,可以把项目的目标以及后面规划的写下。(可以咨询相关pm)
## 方案选择(Scheme)
包含内容:方案设计选择,可以写调研的方案参考,优缺点,调研实践demo,以及最终选择的原因等。
其他:
* 这部分过复杂,可以单独,对应的项目目录中,然后这里此readme,标注引导
* 可参考规范`【技术方案选择文档编写规范】`
## 项目设计结构(Structure)
包含内容:最终的方案设计,目录 or 功能结构,这部分以图表(流程图或者思维导图等)的形式展示,必要的主流程图,细节交互可以补上对应的测试用例等。
其他:
* 这部分过复杂,可以单独,对应的项目目录中,然后这里此readme,标注引导
* 可参考规范`【技术方案设计文档编写规范】`
## 使用(Usage)
# 安装依赖(如果生成初始化项目时已经安装完毕,无需安装)
npm install
# 开发模式 localhost:8000
npm run dev
# 构建模式
npm run build
# 构建模式 + 分析报告
npm run analyz
# 语法校验
npm run lint
# 自动修复
npm run fix
# 按规范 git commit 并自动生成 changelog
npm run cz
## 开发(Development)
具体开发注意事项,使用的工具包,功能特征等等
### 页面配置
- 页面配置 1
- 页面配置 2
### 页面对应地址
| 页面 | 功能 | 地址 |
|------|-----|------|
| home | 首页 | https://xxxxx/home |
| about | 详情页 | https://xxxxx/about |
## API(Reference)
1. api 1
2. api 2
## FAQ(常见问题解答)
1. 常见问题1
2. 常见问题2
## 附录(Appendix)
- [ChangeLog]()
- [其他文档]()
项目目录
├── CHANGELOG.md // [生成] 更新日志
├── README.md // [必选] 导读
├── config // [可选] 配置目录
│ ├── config.js // [生成] 基本配置
│ └── router.config.js // [必填] 路由
├── dist // [生成] 打包目录
├── docs // [可选] 文档
├── mock // [可选] mock 数据
│ └── sample.js // [可选] demo
├── package.json // [必选] 大家都懂
├── public // [必选] 不会被webpack编译的资源
└── src // [必选] 开发目录
├── app.js // [必选] 运行时配置文件
├── assets // [可选] 公共资源(被项目引用的经过webpack处理的资源)
├── components // [必选] 业务组件必须写在这里
├── global.jsx // [必选] 全局执行入口
├── global.less // [必选] 需要重置的样式或者全局样式引用
├── layouts // [可选] 基本的布局封装
├── models // [可选] 对异步数据处理
├── pages // [必选] 页面组件,不允许有其他类型组件混入
├── services // [必选] 业务接口封装
└── utils // [可选] 工具库(用于一些函数方法之类的库)
├── ...
参考文档:https://juejin.im/post/6875157718924492808?utm_source=gold_browser_extension