软件工程之美
宝玉
Groupon资深工程师,微软最有价值专家
立即订阅
6741 人已学习
课程目录
已完结 54 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 你为什么应该学好软件工程?
免费
特别放送 | 从软件工程的角度解读任正非的新年公开信
学习攻略 | 怎样学好软件工程?
基础理论 (9讲)
01 | 到底应该怎样理解软件工程?
02 | 工程思维:把每件事都当作一个项目来推进
03 | 瀑布模型:像工厂流水线一样把软件开发分层化
04 | 瀑布模型之外,还有哪些开发模型?
05 | 敏捷开发到底是想解决什么问题?
06 | 大厂都在用哪些敏捷方法?(上)
07 | 大厂都在用哪些敏捷方法?(下)
08 | 怎样平衡软件质量与时间成本范围的关系?
“一问一答”第1期 | 30个软件开发常见问题解决策略
项目规划篇 (8讲)
09 | 为什么软件工程项目普遍不重视可行性分析?
10 | 如果你想技术转管理,先来试试管好一个项目
11 | 项目计划:代码未动,计划先行
12 | 流程和规范:红绿灯不是约束,而是用来提高效率
13 | 白天开会,加班写代码的节奏怎么破?
14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
15 | 风险管理:不能盲目乐观,凡事都应该有B计划
16 | 怎样才能写好项目文档?
需求分析篇 (5讲)
17 | 需求分析到底要分析什么?怎么分析?
18 | 原型设计:如何用最小的代价完成产品特性?
19 | 作为程序员,你应该有产品意识
20 | 如何应对让人头疼的需求变更问题?
“一问一答”第2期 | 30个软件开发常见问题解决策略
系统设计篇 (4讲)
21 | 架构设计:普通程序员也能实现复杂系统?
22 | 如何为项目做好技术选型?
23 | 架构师:不想当架构师的程序员不是好程序员
24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
开发编码篇 (7讲)
25 | 有哪些方法可以提高开发效率?
26 | 持续交付:如何做到随时发布新版本到生产环境?
27 | 软件工程师的核心竞争力是什么?(上)
28 | 软件工程师的核心竞争力是什么?(下)
29 | 自动化测试:如何把Bug杀死在摇篮里?
30 | 用好源代码管理工具,让你的协作更高效
“一问一答”第3期 | 18个软件开发常见问题解决策略
软件测试篇 (4讲)
31 | 软件测试要为产品质量负责吗?
32 | 软件测试:什么样的公司需要专职测试?
33 | 测试工具:为什么不应该通过QQ/微信/邮件报Bug?
34 | 账号密码泄漏成灾,应该怎样预防?
运行维护篇 (6讲)
35 | 版本发布:软件上线只是新的开始
36 | DevOps工程师到底要做什么事情?
37 | 遇到线上故障,你和高手的差距在哪里?
38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
39 | 项目总结:做好项目复盘,把经验变成能力
“一问一答”第4期 | 14个软件开发常见问题解决策略
经典案例解析篇 (7讲)
40 | 最佳实践:小团队如何应用软件工程?
41 | 为什么程序员的业余项目大多都死了?
42 | 反面案例:盘点那些失败的软件项目
43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
45 | 从软件工程的角度看微服务、云计算、人工智能这些新技术
“一问一答”第5期(内含彩蛋) | 22个软件开发常见问题解决策略
结束语 (1讲)
结束语 | 万事皆项目,软件工程无处不在
软件工程之美
登录|注册

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

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

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

也许你会很好奇,平时也去看过 VS Code 的网站,但并没有提到软件工程的呀?
是的,VS Code 的网站并没有特别突出这些信息,但是如果你有心,可以找到很多有价值的信息,它的整个开发过程都是公开透明的。
比如通过它项目的WIKI博客栏目,可以看到项目的计划、项目开发流程、测试流程、发布流程等信息。通过它的GitHub网站,你可以看到团队是如何基于分支开发,开发完成后提交 Pull Request,团队成员如何对代码进行审核,合并代码后如何通过持续集成运行自动化测试。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件工程之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(7)

  • 胡浩🐸
    赞,有好多值的学习和借鉴的地方,打开 VS Code 经常看到更新提示,感觉被后就有一个非常高效的敏捷团队,今天终于学习到了。

    VS Code 每 4 周发布一个迭代节奏非常棒,每周做的事情都很科学合理,而且把 Github Issue 的功能用的淋漓尽致,打的各种 Label 很值的学习。

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

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

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

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

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

    2019-06-11
    4
  • 极客不落🐒
    怎么学习开源项目?除了眼前的代码,还有诗和远方……

    作者回复: 有关如何学习开源项目的软件工程,我已经在这篇文章中介绍了。

    如果你是想学习代码,我建议你可以把代码下载到本地,尝试着运行起来,然后去看看代码怎么运行的,再去尝试这修改代码,增加功能,去了解它的结构是什么样的,去思考它的设计有什么优缺点?哪些是可以学习借鉴的?

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

    作者回复: 像VSCode,基于Github的Issues,都可以做到项目管理,用禅道或者同类型的Ticket跟踪工具更没问题的。

    我在《14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决》里面对项目管理工具也有一些介绍,可以作为参考。

    项目管理工具,关键还是能对任务进行分配和进度跟踪,通过项目管理工具,项目成员能即时知道自己应该要做的任务,项目管理者能即时知道项目进展情况。

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

    作者回复: VSCode的开发团队是全职的,而且整体水平相当高。

    一个迭代周期内,并非所有功能做完才能发布,而是功能开发完成才合并到主干,如果一个迭代内没完成,那么会放到下一个迭代。

    举个简单例子,一个迭代周期在计划的时候,打算增加2个新功能,修复3个bug。结果在第三周结束,发现只完成了一个功能,修复了3个bug,那么另一个功能就放到下一个迭代继续开发,第四周对已经完成的1个功能和修复的3个bug验证就好了。

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

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

    2019-06-12
    1
收起评论
7
返回
顶部