Skip to content
On this page

研发

WARNING

该部分需要完善。

研发就是研究与开发。本章节主要带领了解研发流程。

Microsoft Azure DevOps

你可以查阅它的文档了解它的最佳实践。

关于 DevOps 的实践还可以参考 Ledge阿里巴巴 DevOps 实践手册

YesDev

你可以查阅它的文档了解它的最佳实践。

模板

司内提供 GiteeGitHub 模板供快速启动开发,内含最佳实践。

Git Workflow

在实践中我们发现,Git Flow 过于复杂,GitHub Flow 又过于简单,而 GitLab Flow 的简易变体能很好地适应各种情况。我们这里提倡的 Git Workflow 就是 GitLab Flow 的一种变体。

只需要两类分支:主分支 main 和开发类分支 dev。

  1. 每次研发一个新功能,或修复一个问题时,先到 YesDev 上添加任务,再到 Microsoft Azure DevOps 对应的仓库中,从主分支 main 分叉出一个开发分支,以 feat-fix- 开头,用英文描述这个分支要处理的事情。例子:feat-watermark(研发水印功能)、fix-watermark(修复水印功能)。
  2. 在开发分支完成开发并自测通过后,在 Microsoft Azure DevOps 发起 PR 合并到主分支 main,要求至少有一个相关负责人参与代码审查并通过。随后在 YesDev 上标记任务完成,并删除对应的开发分支。
  3. 主分支合并一些功能和修复后,再次自测,无发现问题时,可打标签 tag 并发布,部署到预生产环境再行测试。
  4. 预生产环境无发现问题时,可部署到生产环境。
  5. 如果预生产环境和生产环境发现问题,可重复步骤 1 - 4。生产环境发现问题,应先回滚,安排修复后再行部署。

有关 YesDev,请查看 YesDev 章节。

有关 Microsoft Azure DevOps,请查看 Microsoft Azure DevOps 章节。

有关代码和功能设计,请查看 设计 章节。

有关提交,请查看 语义化提交 部分。

有关代码审查,请查看 代码审查 部分。

有关测试,请查看 测试 章节。

有关发布,请查看 发布 章节。

语义化提交

我们提倡将工作分解成一个个独立但完整的提交,多提交、多推送。这能使开发脉络更加清晰,也允许方便地回滚代码到一个特定时间,或者还原一段代码而不影响到其它无关变更。

提交时,信息需遵循语义化提交 Conventional Commits

text
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

下面是一些示例。

text
chore(release): v1.0.0
chore(deps): update deps
chore: update deps
style: format
style: add spaces
fix: prevent racing of requests
feat!: require node >= 14.18
perf: improve code

type 只允许取以下值。

  • build - 影响构建系统或外部依赖关系的更改,如 npmyarn
  • chore - 构建过程或辅助工具和库的更改,基本弃用,可用于表示发布 release
  • ci - 更改 ci 配置文件和脚本,如 flow-citravis-cicircle-cijerkins
  • docs - 更改文档
  • feat - 新功能
  • fix - 问题修复
  • perf - 优化
  • refactor - 重构代码,既没有问题修复,也没有增加功能
  • revert - 回滚代码
  • style - 不影响代码含义的更改,如空格、格式化、缺失分号
  • test - 增加测试或修改当前测试

description 应简洁明确地描述本次提交的意图。

常见反例

❌ fix: fix a bug

✅ fix: 修复了没有正确处理支付回调的问题

fix a bug 非常模糊不清,必须要看通代码才清楚修复了什么问题,而 修复了没有正确处理支付回调的问题 则一目了然。简洁明确地描述本次提交的意图能使开发脉络更加清晰,有利于代码审查。中英文均可,不做强制要求。

无需死记硬背,可借助 commitlinthusky@modyqyw/fabric 来完成自动检查,也可借助 Commit Message Editorcommitizen 完成这一工作。

代码审查

我们提倡对新加入的研发人员做下班前的代码审查,以帮助其尽快融入团队;对其他成员做每周、每月或里程碑代码审查。

代码审查有利于减少漏洞,共享知识技能,提倡所有人都应尽量参与。

代码审查主要针对代码和功能设计,风格方面由 ESLintStylelintPrettier@modyqyw/fabric 等工具加以约束。

有关代码和功能设计,请查看 设计 章节。

异常监控

我们提倡使用 sentry 监控预生产环境和生产环境的异常。

对于预生产环境,应 2 - 3 天检查处理异常。

对于生产环境,应设置报警阈值,在收到报警时马上处理,平时 1 - 2 天检查处理异常。

参考

Released under the MIT License.