软件工程之美学习笔记四十四 43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?

《软件工作之美》材料地址: https://time.geekbang.org/column/article/100141
软件工程的核心,就是围绕软件项目开发,对开发过程的组织,对方法的运用,对工具的使用。

分析 VS Code 对软件工程的应用

1. VS Code 的开发迭代过程

VS Code 每个版本的开发周期是 4 周,每四周都会发布一个新的版本。

  • 第一周: 发布上一迭代版本(周三左右),上一版本收尾(偿还技术债务,修严重bug),下一迭代功能讨论(Sprint backlog会议)
  • 第二第三周:按计划开发新功能,修复Bug(github的issue来分配和跟踪bug)
  • 第四周: End game、测试周,同时更新文档和写release notes,预发布,预上线测试

2. VS Code 团队的角色和分工

团队规模: 20人左右,一般在苏黎世,一般在西雅图;基本是开发人员,结构扁平。
角色:主要开发,还有另外两个角色

  • Inbox tracker:主要任务就是收集、验证、跟踪 Bug。(借助VscodeBot 预处理)
  • Endgame Master:
    VS Code 团队是没有专职的测试人员的,所有的测试工作都是开发人员自己完成。Endgame Master 在这里就很重要,要组织管理整个迭代的测试和发布工作。编写测试计划(以github issue形式存在的Endgame 计划),组织互测、审查。团队的沟通通过 slack。

3. VS Code 的各个阶段

(1) VS Code 的需求收集和版本计划
需求收集:一部分是团队内部产生的;一部分是从社区收集的,比如 GitHub、Twitter、StackOverflow 的反馈。由Github的Issue管理(feature-request标签)
RoadMap: 规划下半年或一年计划,公布在github的wiki上,可再次收集意见。
Issue和迭代计划的关联,是用milestone功能来实现的

  • 当前迭代:当前正在开发中;
  • On Deck:下一个迭代;
  • Backlog:还没开始,表示未来要做的;
  • Recovery:已经完成的迭代,但是可能要打一些补丁。
    在这里插入图片描述
    图片来源:VS Code Milestone
    (2) VS Code 的设计和开发

设计:架构设计现在基本上已经定型,大功能改造,需要设计和review。
开发: 流程用GitHub Flow,提交的PR可以在Github的Pull requests中看到。VS Code 对自动化测试代码也是非常重视,在实现功能代码的时候,还要加上自动化测试代码,分为单元测试、集成测试和冒烟测试。VS Code 的CI(持续集成)用的是微软自己的 Azure DevOps。VS Code 现在有大约 4581 个单元测试用例,运行一次 1 分钟多;集成测试 466 个,运行一次大约 3 分钟。
(3)VS Code 的测试
Endgame Master负责,在最后一周做。分人工测试和冒烟测试。
(4) VS Code 的发布流程
在 Endgame 测试后,就要从 master 创建一个 release 分支出去,后面的预发布版本和正式版本包括补丁版本都将从这个 release分支发布。
如果在创建 release 分支后发现了新的 Bug,那么对Bug 修复的代码,要同时合并到 master 和 release 的代码有任何改动,都需要重新跑冒烟测试。每次 Release 代码修改后,都会发布一个新的预发布版本,邀请大约两万的内部用户进行试用,然后Endgame master 写Release notes,24小时后才可以发布正式版本。如果版本发布后,发现了严重的线上 Bug,那么就要在 Release 分支进行修复,重新生成补丁版本。还有(eat your own dog food),即开发人员自己测试。

4. VS Code 使用的工具

  • VS Code 的源代码管理工具就是基于 GitHub,整个开发流程也完全是基于 GitHub 来进行的。
  • 它的任务跟踪系统是用的 GitHub 的 Issue 系统,用来收集需求、跟踪 Bug。通过标记不同的 Label 来区分Issue 的类型和状态,比如 bug 表示 Bug,feature-request 表示功能请求,debt 表示技术债务。通过 Issue 的 Milestone 来标注版本。
  • VS Code 的持续集成工具最近换成了微软的Azure Pipelines。
  • VS Code 的文档一部分是用的 GitHub 的 WIKI 系统,一部分是它网站的博客系统。
  • 另外还有自己开发的VSCodeBot来预处理Issue。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值