一、创建项目-git环境搭建可视化管理工具Sourcetreehttps://www.sourcetreeapp.com。腾讯云CODING平台代码仓库管理、持续集成、持续迭代、持续部署、Code Review。腾讯云CNB平台基于Docker生态对环境、缓存、插件进行抽象通过声明式的语法帮助开发者以更酷的方式构建软件。制品相当于Docker二、gitflow 协同流程操作演示参考 gitflow 做了简化更适合小团队协作。master 分支线上正在运行的代码永远保留这部分代码。develop 分支研发最新的代码。永远固定存在的分支。feature 分支每一个功能迭代 有一个需求过来的时候我们就从develop上面 拉一个分支出来开发完成的时候再把它合并到develop分支上。feature 分支来源于 develop开发完成后回归 develop 分支。这样做的原因使得每一个功能分支的代码 都是独立的而每当我们从功能分支上去往develop 分支合并分支与分支合并时候我们就很清晰地知道 这一次合并里面 完整功能 具体改动了哪些代码我们就可以在这里进行 持续集成性的 code review而不是那种形式化的 code review会发线上的合并流程 完成 code review 动作。操作演示从 master 分支上拉出一个 develop 分支并把 develop 分支推送到 origin。假设现在有个需求过来要改动代码。这时候我们就需要在 develop 分支上拉一个 feature 分支取名字例如“feature/change-readme”把该 feature 分支也推送到 origin。这个时候我们可以看到 origin 端有 master、develop、feature/change-readme 分支。我们也可以看下 云平台代码仓库。回到代码编辑器代码在 feature/change-readme 分支我们改一下代码。代码更改后我们 commit然后把 feature/change-readme 分支推送到 origin。代码变化 是在 feature 分支上完成的不会影响 develop master 分支。在我的分支开发完成之后合并到 develop 分支。接下来要合并分支进行合并请求动作。云平台代码仓库 合并请求tab 创建合并请求按钮 也叫 pull request / merge request 目的把源分支合并到目标分支上 可选择的话可以写点描述 可选择的话可以选择一个评审者 创建合并请求。代码仓库 合并请求tab 中可以看到 一个合并请求在 可以进入查看详情 看提交记录、看文件改动、可以发表评论就是 code review 环节 “1”的评论表示 合并没问题的 “直接合并”按钮 再次确认“合并”可以选择删除源分支 成功合并。代码仓库中查看 develop 分支上已有 feature/change-readme 分支更改的代码。走这样的流程才有机会在持续集成的过程中进行 code review。后续开发 都应该遵循这样的流程。回到本地的代码develop 分支代码还没有更新。需要进行拉取代码git pull。这个流程 希望形成惯性认知要做到非常非常熟悉这么一个动作。三、项目初始化node 版本管理nvmnode 版本18.19.0。brew install nvm; nvm install 18.19.0;创建 .gitignore 文件。创建 package.json 文件。npm init;package.json 文件中添加两项配置。{ dependencies:{}, devDependencies:{} }国内 npm install 下载安装比较慢的问题cnpm。npm install cnpm -g --registryhttps://registry.npmmirror.com # 另一种方式/或者说 cnpm 本质。 npm config list npm config set registry https://registry.npmmirror.com # 同理清空源 npm config set registry下载依赖包。cnpm install --save-dev创建入口文件/启动文件 index.js。const Koa require(koa); const app new Koa(); try { const port process.env.PORT || 8080; const host process.env.IP || 0.0.0.0; app.listen(port, host); console.log(Server running on port: ${port}); } catch (e) { console.error(e); }初始化项目要考虑到持续部署持续集成以及代码后续开发过程中怎么样更规范 相关的一些问题。规范有两个点一个是代码规范 ESLint一个是 git commit 规范。创建文件 .eslintrc创建文件 .eslintignorenode_modules/ public/运行 eslint 命令{ scripts: { lint: eslint --quiet --ext js,vue . } } // 这样的配置quiet 会静默不报那些其他的错ext 后缀名. 当前目录 // 命令行中如何执行 npm run lint接下来我们就要配置 commit message 规范。考虑到团队协同以后后续的可维护性。有助于后续出问题时快速定位/回退。// 业界比较认可的一个规范。注意是英文冒号空格。 type(scope): subject feat: 新功能feature fix: 修补bug docs: 文档documentation style: 格式不影响代码运行的变动 refactor: 重构既不是新增功能也不是修改bug的代码变动 test: 增加测试 chore: 构建过程或辅助工具的变动有了规范如何约束/检测呢库 validate-commit-msg。如何把这些集成到研发流程中呢提交代码过程中呢库 ghooks。大白话讲解一下库的作用提交代码过程 git相关操作 各种各样事件钩子监听这些钩子对应事件钩子上面做具体相关的事情。ghooks 是一个用于简化 Git 钩子Git Hooks管理的 Node.js 工具允许开发者在 Git 操作如commit、push、merge等前后自动执行脚本从而提升代码质量和开发流程的自动化程度。根据公开资料ghooks 的工作机制是通过npm install ghooks --save-dev安装为开发依赖在package.json中配置钩子命令如pre-commit: npm run lint当项目目录被识别为 Git 仓库即存在.git/目录时ghooks 会自动将配置的命令写入.git/hooks/对应的钩子文件中。注意事项若使用图形化 Git 客户端如 Sourcetree、GitKraken需确认其支持自定义钩子否则部分钩子可能不触发。// package.json 文件中增加配置项 { config: { ghooks: { commit-msg: validate-commit-msg, pre-commit: npm run lint } } }接下来进入提交代码环节。在 Sourcetree 上 commit 并 push。四、elpis-core 内核引擎设计进入整个服务框架的搭建。