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

44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?

事后总结,不断改进
完善的发布和监控流程
严谨的测试流程
严格的开发流程
迭代周期短
工具投入
自主开发工具
DevOps文化
没有专职测试
团队规模小
学习借鉴的实践
喜欢的大厂
借鉴优秀实践到自己的项目中
学习大厂软件工程实践
多关注大厂对软件工程实践的变化趋势
观察大厂对软件工程实践共通的地方
项目开发流程
开发工具的使用
软件项目开发团队组成
课后思考
总结
学习借鉴
大厂软件工程实践
软件工程实践

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

你好,我是宝玉。在上一篇文章里,我带你一起了解了像 VS Code 这样的开源项目对软件工程的应用,以及如何学习借鉴优秀的项目对软件工程的应用。今天我将带你去看看像微软、谷歌、阿里巴巴这些大厂是怎么应用软件工程的,以及我们应该如何学习和借鉴他们对软件工程的实践。
我想无论你现在是否在大厂工作,都有很多途径了解到大厂是如何应用软件工程的,网上已经有很多他们员工的分享。你可能更想知道的是: 从大厂应用软件工程的实践中,你能学习什么,又该如何学习借鉴。
每个公司,都有自己的历史和文化,他们的文化又影响了各自的软件开发模式。
比如说谷歌,谷歌崇尚工程师文化,请来的工程师都是万里挑一的,开发也没有太大的进度压力,所以 Google 的工程师做项目就会不紧不慢,质量优先,有统一的代码规范,严格的代码审查和严谨的自动化测试。还会频繁地重写系统,每隔几年,就把软件重写一遍。
再比如说 Facebook,Facebook 有一种黑客精神,创始人马克·扎克伯格有句名言是“Move Fast and Break Things”,也就是说快速做出产品,不要怕犯错。所以 Facebook 的工程师做软件开发的时候不会想太多,先实现再说,做出来就发布,哪怕可能有 Bug。发布后根据用户的反馈再不断完善,真的把线上功能弄坏了,再打补丁去修复。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

大厂如微软、谷歌、阿里巴巴等在软件工程中的应用方式体现了小团队规模、自动化测试、DevOps文化和工具投入等特点。他们在软件项目开发团队组成、开发工具的使用和项目开发流程方面展现出了一些独特的实践。这些实践对于普通公司也具有借鉴意义,有助于提高软件开发效率和质量。大厂的软件工程实践包括迭代周期短、严格的开发流程、严谨的测试流程、完善的发布和监控流程以及事后总结不断改进。这些实践展现了大厂对软件工程的高效应用和不断改进的态度,为其他公司提供了可借鉴的经验和思路。通过学习大厂的软件工程实践,可以帮助拓宽视野,提升软件工程知识水平,并将其中的好的实践应用到自己的项目中。值得注意的是,即便是大厂,对软件工程的应用也不是一成不变的,会随着技术的发展、软件工程的发展不断改进。

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

全部留言(6)

  • 最新
  • 精选
  • 易林林
    软件工程方式的使用,或多或少会受到最高领导层管理理念的影响,这从各大公司的组织架构图可以看出一些端倪,比如:Amzon的组织架构图,领导力准则得以全面体现,精确而清晰;Facebook的组织架构图,更利于信息的快速传递和响应,管理方式相对其他公司更加扁平;Google的组织架构图,上层倾向于层级管理,下层倾向于扁平管理,适合于公司指令的上传下达,也适合于不同层级之间的工程师进行沟通交流进步成长。 如果领导层倾向于规范化流程化,那么采用Amazon的开发方式,明确的分工,明确的目标,这使得贝佐斯的领导力、执行力、远见力得以全面实施。 如果领导层倾向于激进和冒险,那么采用Facebook的开发方式,只要你够积极,不断创新,即使犯错也是一种进步,不得不说这种方式在小公司开发团队中实施起来更可行,毕竟小公司需要快速响应,快速迭代,快速决策,不可预料的事情比较多。 如果领导层倾向于人性的发挥,那么采用Google的开发方式(个人认为适合资金比较雄厚的公司),它能让工程师在舒适的环境中充分发挥所长,并去尝试开拓自己感兴趣的新的技术领域,各自都对自己的领域精雕细琢,质量无形中就得到了一定程度上的保证。 从上面来看,我算是一个激进和冒险的人,更喜欢Facebook的开发方式,使我能够在不断的创新和错误中成长。

    作者回复: 👍你这个角度也很新颖! 一个公司的文化和创始人的性格是有很大关系的,这些文化都没有绝对的好坏,都成就了伟大的公司,合适的就是最好的

    2019-06-14
    15
  • Joey
    宝玉老师好,按照您的课程体系,在逐步实践软件质量管理。请教您一个具体问题:对于生产事件,怎么有效广播给其他所有团队,让他们知其原委,并在之后版本迭代中注意,或者说通过哪些方式可以更好地避免重复发生。 目前采用的方式: 1.知识库,基本没人看。 2.通过邮件广播,群发邮件,也基本无法引起开发者的注意。

    作者回复: 开发人员只有在自己遇到问题时,痛过,才能真正的深刻领悟,其它方式效果都会弱一些。 除了你这些方式,还可以考虑: 定期有回顾会议,大家一起总结反思一下,对于一些典型的问题,有必要专门开一个技术会议总结一下,最好当事人来讲。时间不必长,不必太形式化,说清楚问题即可。 有一些错误,尝试从流程或者自动化的方式去解决。比如某一类型错误,是不是可以增加自动化测试,以后在代码提交时,持续集成就能帮助发现错误? 还有比如说有没有代码审查的环节?代码审查是非常好的方式,可以帮助把这些问题及早发现及早修正。

    2019-07-29
    4
  • 文西
    宝玉老师,php有什么好的自动化测试框架吗

    作者回复: 抱歉我对PHP不懂,你可以搜索一下:“PHP 自动化测试框架” 好像PHPUnit和Codeception不错。 另外Nightwatch或者webdriverio可以对你完成的网页结果进行测试 http://nightwatchjs.org

    2019-06-13
    3
  • hua168
    宝哥,现在大厂基本上web都是用java web,sprin boot或spring cloud吧? 运维方面我发现很多用Go,比阿里之前用java/python,现在慢慢用Go…google也用Go,七牛云也是用Go

    作者回复: 如果你看下一篇,你会发现技术其实只是工具,是为架构和业务服务的,所以大厂并不是只用什么或者不用什么,还是看哪种更适合业务需求。

    2019-06-19
    2
  • 胖虫子
    完了,得转行了,都没测试了

    作者回复: 不是没测试了,而是对测试的要求更高了

    2020-01-08
  • ifelse
    你要多去关注大厂们对软件工程实践共通的地方,可以应用在你自己项目的地方,另外还要去看大厂对软件工程实践的变化趋势,在朝什么方向发展。--记下来
    2022-07-10
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部