【架构师(第六篇)】脚手架之需求分析和架构设计

1,866 阅读2分钟

脚手架需求分析和架构设计

将收获什么

  • 掌握架构设计和技术方案设计全过程
  • 脚手架执行核心流程和 通过 commander 完成脚手架的框架搭建和命令注册
  • 图解架构设计图 + 绘图技巧
  • 如何让一个 Node 项目支持 ES Module

主要内容

  • 脚手架需求分析和架构设计
  • 脚手架模块拆分策略
  • 核心模块 core 技术方案设计
  • 实现脚手架执行准备过程
  • 基于 commander 实现脚手架命令注册
  • 让一个 Node 项目支持 ES Module

研发流程

image.png

痛点分析

  • 创建项目/组件时,存在大量重复代码的拷贝,如何快速复用已有沉淀。
  • 协同开发时,由于 git 操作不规范,导致分支混乱,操作耗时,如何制定标准的 git 操作规范并集成到脚手架。
  • 发布上线耗时,而且容易出现各种错误,如何制定标准的上线流程和规范并集成到脚手架。

需求分析

  • 通用的研发脚手架,解决所有痛点。
  • 通用的项目/组件创建能力
    • 模板支持定制,定制后能够快速生效
    • 模板支持快速接入,极低的接入成本
  • 通用的项目/组件发布能力
    • 发布过程自动完成标准的 git 流程
    • 发布成功后自动删除开发分支并创建 tag
    • 发布成功后自动完成云构建,OSS 上传,CDN 上传,域名绑定
    • 发布过程支持测试,正式两种环境

git 操作规范

image.png

绘制架构图

image.png

脚手架模块拆分策略

把一个大的项目拆分成多个模块,方便管理和维护。

我们这个脚手架将按照下方计划进行拆分。

  • 核心流程 Core
  • 命令 Command
    • 初始化
    • 发布
    • 清除缓存
  • 模型层 Model
    • Command 命令
    • Project 项目
    • Component 组件
    • Npm 模块
    • Git 仓库
  • 支持模块 Utils
    • Git 操作
    • 云构建
    • 工具方法
    • API 请求
    • Git Api

Core 模块技术方案

命令执行流程

  • 准备阶段
  • 命令注册
  • 命令执行

image.png

设计技术点

核心库

  • import-local
  • commander

工具库

  • npmlog : 打印日志
  • fs-extra : 文件操作
  • semver : 版本比对
  • colors :打印不用颜色的文本
  • user-home : 拿到用户的主目录
  • dotenv : 获取环境变量
  • root-check : 检查 root 用户,降级