笔记

脚手架核心流程开发——准备阶段

大厂项目流程

  1. 设计阶段

    1. 业务或研发过程中的痛点
    2. 需求:
      1. PD 需求文档(PRD)
        1. 产品原型图
        2. 痛点
        3. 做完后希望达成的目标(可量化)
      2. 技术方案设计:
        1. 技术方案文档
        2. 技术选型
        3. 技术架构
        4. api定义
        5. 技术调研
        6. 评估技术风险
    3. 项目立项
      1. kick-of
        1. 确立 PO PM (产品负责人,开发团队人员)
    4. 项目排期
      1. 计划并确立时间节点
  2. 实施阶段

    1. 交互视觉设计
    2. 开发
    3. 测试
    4. 验收
    5. 上线
    6. 结项
      1. 看是否达到目标

大厂git规范

分支规范

  1. master:同步分支 线上代码
  2. dev:开发分支: dev 0.0.1 自动升版本
  3. release:上线后 添加 tag: release 0.0.1

仓库规范

  1. 原始仓库:代码合并前 code review,合并后无问题提交测试
  2. fork 仓库: 存放自己的代码
  3. 本地仓库:本地开发,开发完成合并回原始仓库

脚手架架构设计

架构设计图:系统设计思路 考虑好外部依赖

痛点分析:

  1. 创建项目/组件时,存在大量重复代码:快速复用已有沉淀
  2. 协同开发时 git 操作不规范,分支混乱,操作耗时:制定标准的git操作规范
  3. 发布上线耗时,而且容易出现各种错误:制定标准的上线流程

需求分析:

  1. 通用的研发脚手架
  2. 通用的项目/组件创建能力
    1. 模板支持定制,定制后能够快速生效
    2. 模板支持快速接入,极低的接入成本
  3. 通用的项目/组件发布能力
    1. 发布过程自动完成标准的 git 操作
    2. 发布完成后自动删除开发分支,并创建tag
    3. 发布后自动完成云构建、oss上传、cdn上传、域名绑定
    4. 发布过程支持测试/正式两种模式

架构图体系

项目初始化体系

  1. 项目初始化
    1. 组件初始化
    2. 初始化模式
  2. 项目发布体系
    1. 项目发布
    2. 组件发布
    3. 发布模式
  3. 标准git操作体系
    1. 仓库创建
    2. 开发模式
    3. 发布模式
  4. 核心框架(初始化,完成执行流程,完成命令执行,完成异常监听)
    1. 执行准备
    2. 命令注册
    3. 命令执行
  5. OPEN API
    1. 项目/组件模板
    2. 静态资源查询
    3. 配置信息
  6. WebSocket 服务
    1. 云构建
    2. 云发布
    3. 发布模式

外部依赖

  1. 代码仓库
  2. 资源体系
  3. 远程缓存体系
  4. 本地缓存体系
  5. 模板库
  6. 数据体系

代码实现思路

脚手架拆包策略

  1. 核心流程:core
  2. 命令:commands
    1. 初始化
    2. 发布
    3. 清缓存
  3. 模型层:models
    1. 命令
    2. 项目
    3. 组件
    4. npm
    5. git 仓库
  4. 支撑模块:utils
    1. git 操作
    2. 云构建
    3. 工具方法
    4. API 请求
    5. git API

core模块技术方案

准备阶段

  1. 检查版本号
    1. 检查node版本
    2. 检查root启动
    3. 检查用户主目录
    4. 检查入参
    5. 检查环境变量
    6. 检查是否最新版本
    7. 命令注册
    8. 命令执行

核心库

1. import-local 
1. commander 脚手架框架

工具库

1. npmlog 控制台输出
1. fs-extra 检查文件是否存在
1. semver 比较版本号
1. colors log信息添加颜色
1. user-home 操作系统用户主目录
1. dotenv 从文件加载环境变量
1. root-check root用户降级 
Copyright © imooc-lego (2020 - present) all right reserved,powered by GitbookFile Modify: 2021-06-27 08:04:56

results matching ""

    No results matching ""