43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
该思维导图由 AI 生成,仅供参考
如何从 VS Code 的开发中学习软件工程?
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了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-1111 - 一文字棒,感觉像打开了新世界的大门,赶紧把这种学习方法消化下🧘♂️
作者回复: 👍以后看到好的软件项目,尝试去观察它们的软件工程应用,学习借鉴:)
2019-06-118 - 露娜老师:现在遇到一个特别尴尬的事情,每次发测试前,都会预留时间每个人自测自己的代码,但是总有些人根本就不测,直接扔给测试。测试一测一大堆问题。请问这种情况有么有好的方法可以避免?
作者回复: 这个问题我也遇到过,完全靠管理手段靠流程规范也难以完全杜绝。我觉得首先你要甄别一下,那些老是不自动测试的开发人员,他们只是因为习惯不好?还是就是混日子的?对于后者,还是早点清理出去更好,对于前者,可以想办法去帮助改进。 我现在用的开发流程(参考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-085 - Y024怎么学习开源项目?除了眼前的代码,还有诗和远方……
作者回复: 有关如何学习开源项目的软件工程,我已经在这篇文章中介绍了。 如果你是想学习代码,我建议你可以把代码下载到本地,尝试着运行起来,然后去看看代码怎么运行的,再去尝试这修改代码,增加功能,去了解它的结构是什么样的,去思考它的设计有什么优缺点?哪些是可以学习借鉴的?
2019-06-115 - yellowcloud宝玉老师,我们目前项目使用的管理工具是TFS,它好像也自带CI和CD功能,我想请问一下,它和文中介绍的Azure DevOps,那个好用呢?
作者回复: Azure DevOps应该是TFS的升级版,如果在线托管的话,你应该考虑用Azure DevOps。
2019-06-114 - 神经旷野舞者看了vscode感觉项目管理也不复杂,关键是一群靠谱的人有动力有方法有共识,项目管理失败基本都是人的因素,说难就难说不难也不难。
作者回复: 是的,项目管理本身并不复杂,还是离不开人的实施。
2020-01-013 - 小谢同学感觉vscode的日常开发管理工作非常饱和,这里有个问题想请教,以vscode为例,4周的一个迭代周期如何确保效率,特别实在第一周里,包含了历史遗留问题的处理,还要做本次迭代的规划安排,更何况开源项目如果不是全职铺在上面怎么办?如果在某一个迭代周期内因为不可抗力因素导致延期了怎么办?
作者回复: VSCode的开发团队是全职的,而且整体水平相当高。 一个迭代周期内,并非所有功能做完才能发布,而是功能开发完成才合并到主干,如果一个迭代内没完成,那么会放到下一个迭代。 举个简单例子,一个迭代周期在计划的时候,打算增加2个新功能,修复3个bug。结果在第三周结束,发现只完成了一个功能,修复了3个bug,那么另一个功能就放到下一个迭代继续开发,第四周对已经完成的1个功能和修复的3个bug验证就好了。
2019-06-183 - freda你好,我想请教下,我领导想用禅道软件做项目管理,可是我觉得禅道更适合做软件开发,想听听你的看法
作者回复: 像VSCode,基于Github的Issues,都可以做到项目管理,用禅道或者同类型的Ticket跟踪工具更没问题的。 我在《14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决》里面对项目管理工具也有一些介绍,可以作为参考。 项目管理工具,关键还是能对任务进行分配和进度跟踪,通过项目管理工具,项目成员能即时知道自己应该要做的任务,项目管理者能即时知道项目进展情况。
2019-10-1221 - 远征师傅领进门:)不仅知道如何入手开源项目,而且在项目管理上也有新借鉴!谢谢老师
作者回复: 谢谢支持! 有具体问题也欢迎留言:)
2019-06-121 - ifelse当你日常在看一个开源项目的时候,不仅可以去看它的代码,还可以去观察它是怎么应用软件工程的,不仅可以加深你对软件工程知识的理解,还能从中学习到好的实践。--经记下来2022-07-10