软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?

课后思考
总结
VS Code使用的工具
VS Code的各个阶段
团队的分工角色
VS Code的开发过程
软件工程知识点在VS Code项目中的应用

该思维导图由 AI 生成,仅供参考

你好,我是宝玉。如果你所在的团队在日常的软件项目开发中,能科学地应用软件工程的知识,让你的项目能持续取得进展,最终交付的产品也有很好的质量,那么是一件非常幸运的事情。
然而现实中,很多人并没有机会去参与或观察一个好的项目是什么样子的,也没机会去分析一个好的项目是如何科学应用软件工程的。
好在现在有很多优秀的开源项目,不仅代码是公开的,它们整个项目的开发过程都是公开的。通过研究这些开源项目的开发,你能从中学习到一个优秀项目对软件工程的应用,加深你对软件工程知识的理解,进而应用到你自己的项目实践中。
我想你对 VS Code 应该不陌生,它是一个非常优秀的编辑器,很多程序员包括我非常喜欢它。VS Code 也是一个大型的开源项目,整个开发过程非常透明,所以今天我将带你一起看一下 VS Code 是如何应用软件工程的,为什么它能构建出这么高质量的软件。

如何从 VS Code 的开发中学习软件工程?

也许你会很好奇,平时也去看过 VS Code 的网站,但并没有提到软件工程的呀?
是的,VS Code 的网站并没有特别突出这些信息,但是如果你有心,可以找到很多有价值的信息,它的整个开发过程都是公开透明的。
比如通过它项目的WIKI博客栏目,可以看到项目的计划、项目开发流程、测试流程、发布流程等信息。通过它的GitHub网站,你可以看到团队是如何基于分支开发,开发完成后提交 Pull Request,团队成员如何对代码进行审核,合并代码后如何通过持续集成运行自动化测试。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了VS Code团队如何应用软件工程知识进行大型开源项目的开发和管理。文章首先介绍了VS Code团队采用的快速迭代开发模式,每四周发布一个新版本,并且团队成员在开发新功能和修复Bug时有明确的分工和轮值角色。其次,文章详细介绍了VS Code团队在需求收集和版本计划、设计开发、测试和发布等各个阶段的工作流程和方法。此外,还介绍了VS Code团队使用的工具,如GitHub、Azure DevOps等,以及团队的日常沟通方式。通过这些内容,读者可以从VS Code的开发中学习软件工程知识,加深对软件工程的理解,并将这些知识应用到自己的项目实践中。文章通过深入剖析VS Code团队的实践,为读者提供了宝贵的实践经验和启发,对于想要了解大型开源项目的软件工程实践的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • 胡浩🐸
    赞,有好多值的学习和借鉴的地方,打开 VS Code 经常看到更新提示,感觉被后就有一个非常高效的敏捷团队,今天终于学习到了。 VS Code 每 4 周发布一个迭代节奏非常棒,每周做的事情都很科学合理,而且把 Github Issue 的功能用的淋漓尽致,打的各种 Label 很值的学习。

    作者回复: 谢谢蛙总指教🤝

    2019-06-11
    11
  • 一文字
    棒,感觉像打开了新世界的大门,赶紧把这种学习方法消化下🧘‍♂️

    作者回复: 👍以后看到好的软件项目,尝试去观察它们的软件工程应用,学习借鉴:)

    2019-06-11
    8
  • 露娜
    老师:现在遇到一个特别尴尬的事情,每次发测试前,都会预留时间每个人自测自己的代码,但是总有些人根本就不测,直接扔给测试。测试一测一大堆问题。请问这种情况有么有好的方法可以避免?

    作者回复: 这个问题我也遇到过,完全靠管理手段靠流程规范也难以完全杜绝。我觉得首先你要甄别一下,那些老是不自动测试的开发人员,他们只是因为习惯不好?还是就是混日子的?对于后者,还是早点清理出去更好,对于前者,可以想办法去帮助改进。 我现在用的开发流程(参考GitHub Flow https://help.github.com/cn/github/collaborating-with-issues-and-pull-requests/github-flow)还算比较有效,可以酌情参考: 1. 每个任务都要单独分支(branch)单独PR(Pull Request),这样以PR为单位,可以更好的跟踪评定一个开发任务所有相关的代码。否则你所有代码都直接提交到master就很难跟踪。 2. 引入代码评审(Code Review),PR要求有其他人批准才能合并到master,通过评审,让同组成员相互监督提醒。 3. 对于新功能或者Bug,可以要求在PR中提供功能的演示,比如说屏幕截图或者屏幕录屏,通过这样的方式来保证自己测试了,也有利于代码评审的人检查是否完成。 4. 要求有一定比例的自动化测试代码,自动化测试代码也是一种很好的自我测试方法,更可以有效保证质量。 5. 如果CI(持续集成)工具能帮助你自动运行自动化测试,这样测试结果就一目了然。如果新的PR导致了自动化测试失败,说明代码是有问题的,测试也是不充分的。那么就要先修复自动化测试的错误。 以上这个流程的执行,一方面要有开发工具的支持:Git、CI、自动化测试框架,这些网上都有现成解决方案,搭建起来应该不复杂。 另一方面团队里面要有认真负责技术好的成员帮助Review代码,如果没有合适的你就需要自己多费心了。

    2020-05-08
    5
  • Y024
    怎么学习开源项目?除了眼前的代码,还有诗和远方……

    作者回复: 有关如何学习开源项目的软件工程,我已经在这篇文章中介绍了。 如果你是想学习代码,我建议你可以把代码下载到本地,尝试着运行起来,然后去看看代码怎么运行的,再去尝试这修改代码,增加功能,去了解它的结构是什么样的,去思考它的设计有什么优缺点?哪些是可以学习借鉴的?

    2019-06-11
    5
  • yellowcloud
    宝玉老师,我们目前项目使用的管理工具是TFS,它好像也自带CI和CD功能,我想请问一下,它和文中介绍的Azure DevOps,那个好用呢?

    作者回复: Azure DevOps应该是TFS的升级版,如果在线托管的话,你应该考虑用Azure DevOps。

    2019-06-11
    4
  • 神经旷野舞者
    看了vscode感觉项目管理也不复杂,关键是一群靠谱的人有动力有方法有共识,项目管理失败基本都是人的因素,说难就难说不难也不难。

    作者回复: 是的,项目管理本身并不复杂,还是离不开人的实施。

    2020-01-01
    3
  • 小谢同学
    感觉vscode的日常开发管理工作非常饱和,这里有个问题想请教,以vscode为例,4周的一个迭代周期如何确保效率,特别实在第一周里,包含了历史遗留问题的处理,还要做本次迭代的规划安排,更何况开源项目如果不是全职铺在上面怎么办?如果在某一个迭代周期内因为不可抗力因素导致延期了怎么办?

    作者回复: VSCode的开发团队是全职的,而且整体水平相当高。 一个迭代周期内,并非所有功能做完才能发布,而是功能开发完成才合并到主干,如果一个迭代内没完成,那么会放到下一个迭代。 举个简单例子,一个迭代周期在计划的时候,打算增加2个新功能,修复3个bug。结果在第三周结束,发现只完成了一个功能,修复了3个bug,那么另一个功能就放到下一个迭代继续开发,第四周对已经完成的1个功能和修复的3个bug验证就好了。

    2019-06-18
    3
  • freda
    你好,我想请教下,我领导想用禅道软件做项目管理,可是我觉得禅道更适合做软件开发,想听听你的看法

    作者回复: 像VSCode,基于Github的Issues,都可以做到项目管理,用禅道或者同类型的Ticket跟踪工具更没问题的。 我在《14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决》里面对项目管理工具也有一些介绍,可以作为参考。 项目管理工具,关键还是能对任务进行分配和进度跟踪,通过项目管理工具,项目成员能即时知道自己应该要做的任务,项目管理者能即时知道项目进展情况。

    2019-10-12
    2
    1
  • 远征
    师傅领进门:)不仅知道如何入手开源项目,而且在项目管理上也有新借鉴!谢谢老师

    作者回复: 谢谢支持! 有具体问题也欢迎留言:)

    2019-06-12
    1
  • ifelse
    当你日常在看一个开源项目的时候,不仅可以去看它的代码,还可以去观察它是怎么应用软件工程的,不仅可以加深你对软件工程知识的理解,还能从中学习到好的实践。--经记下来
    2022-07-10
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部