笔记
脚手架核心流程开发——准备阶段
大厂项目流程
设计阶段
- 业务或研发过程中的痛点
- 需求:
- PD 需求文档(PRD)
- 产品原型图
- 痛点
- 做完后希望达成的目标(可量化)
- 技术方案设计:
- 技术方案文档
- 技术选型
- 技术架构
- api定义
- 技术调研
- 评估技术风险
- PD 需求文档(PRD)
- 项目立项
- kick-of
- 确立 PO PM (产品负责人,开发团队人员)
- kick-of
- 项目排期
- 计划并确立时间节点
实施阶段
- 交互视觉设计
- 开发
- 测试
- 验收
- 上线
- 结项
- 看是否达到目标
大厂git规范
分支规范
- master:同步分支 线上代码
- dev:开发分支: dev 0.0.1 自动升版本
- release:上线后 添加 tag: release 0.0.1
仓库规范
- 原始仓库:代码合并前 code review,合并后无问题提交测试
- fork 仓库: 存放自己的代码
- 本地仓库:本地开发,开发完成合并回原始仓库
脚手架架构设计
架构设计图:系统设计思路 考虑好外部依赖
痛点分析:
- 创建项目/组件时,存在大量重复代码:快速复用已有沉淀
- 协同开发时 git 操作不规范,分支混乱,操作耗时:制定标准的git操作规范
- 发布上线耗时,而且容易出现各种错误:制定标准的上线流程
需求分析:
- 通用的研发脚手架
- 通用的项目/组件创建能力
- 模板支持定制,定制后能够快速生效
- 模板支持快速接入,极低的接入成本
- 通用的项目/组件发布能力
- 发布过程自动完成标准的 git 操作
- 发布完成后自动删除开发分支,并创建tag
- 发布后自动完成云构建、oss上传、cdn上传、域名绑定
- 发布过程支持测试/正式两种模式
架构图体系
项目初始化体系
- 项目初始化
- 组件初始化
- 初始化模式
- 项目发布体系
- 项目发布
- 组件发布
- 发布模式
- 标准git操作体系
- 仓库创建
- 开发模式
- 发布模式
- 核心框架(初始化,完成执行流程,完成命令执行,完成异常监听)
- 执行准备
- 命令注册
- 命令执行
- OPEN API
- 项目/组件模板
- 静态资源查询
- 配置信息
- WebSocket 服务
- 云构建
- 云发布
- 发布模式
外部依赖
- 代码仓库
- 资源体系
- 远程缓存体系
- 本地缓存体系
- 模板库
- 数据体系
代码实现思路
脚手架拆包策略
- 核心流程:core
- 命令:commands
- 初始化
- 发布
- 清缓存
- 模型层:models
- 命令
- 项目
- 组件
- npm
- git 仓库
- 支撑模块:utils
- git 操作
- 云构建
- 工具方法
- API 请求
- git API
core模块技术方案
准备阶段
- 检查版本号
- 检查node版本
- 检查root启动
- 检查用户主目录
- 检查入参
- 检查环境变量
- 检查是否最新版本
- 命令注册
- 命令执行
核心库
1. import-local
1. commander 脚手架框架
工具库
1. npmlog 控制台输出
1. fs-extra 检查文件是否存在
1. semver 比较版本号
1. colors log信息添加颜色
1. user-home 操作系统用户主目录
1. dotenv 从文件加载环境变量
1. root-check root用户降级