《软件工作之美》材料地址:https://time.geekbang.org/column/article/96289
关于软件版本
对软件版本来说,包含两部分含义,一部分代表特定功能集合,一部分代表某一次特定的代码构建结果。
业界在软件版本的命名上,通常会采用以下方式:
主版本号.子版本号.[. 修正版本号.[构建版本号]]
主版本号和子版本号用来标识功能变化,小的功能变化增加子版本号,大的功能变化增加主版本号。修正版本号则表示功能不变化的情况下修复 Bug,而构建版本号表示一次新的构建,这个通常由编译程序自动生成。
版本发布前,做好版本发布的规划
要合理管理好用户的预期,达到好的发布效果,就需要在版本发布前先做好版本发布的规划。
版本的发布规划的内容如下
- 首先是规划好要发布的功能。
- 然后是定义好发布的质量标准
- 再有就是要设计好发布的策略。(比如灰度发布)
- 最后,就是有一个综合性的版本发布计划。(综合考虑各个干系人需求)
规范好发布流程,保障发布质量
首先是必须保证要编译部署的是正确的版本。
然后要保证版本稳定可靠。
再就是要在发布失败后能回滚。(代码冻结、Bug 分级、回归测试等)
制定合理的流程,来应用好的实践,保证发布的质量。
-
在发布之前要做代码冻结。
创建release分支,该分支的代码,冻结功能的修改,不接受新功能的增加,甚至重要性不高的 Bug 都不修改,只修复重要的 Bug。 -
对代码冻结后发现的 Bug 要分级
是否在发布前修改,还是留在发布后再修改。 -
每次修复 Bug 后,发布新的候选版本
采用CICD pipeline,自动测试和构建,生成各个环境的发布版本 -
每次部署新的候选发布版本后,要做回归测试
-
申请上线发布(统筹安排)
-
部署发布
-
上线后的测试(主要功能、关键数据、运行监控)
软件上线只是新的开始
- 需要给用户反馈的渠道
- 主动的对发布的版本进行监控