Google软件工程:什么是软件工程_谷歌工程是什么

文章目录

已剪辑自: https://mp.weixin.qq.com/s/GhYfH3ndRsOWHFyAnFVvPQ

没有什么东西是建在石头上的,一切都是建在沙子上的,但我们必须把沙子当做石头来建筑。— Jorge Luis Borges

编程≠软件工程

编程:编程是生产代码的直接行为。

软件工程:软件工程是一组必要的原则、实践方法和工具,使得代码在跨团队协作和使用时能更加的有效。

编程和软件工程的三个关键差异点:时间,规模和权衡。

  • • 首先,对于一个软件工程,工程师需要更多的关注时间的流逝和可能的需求变更。
    • • 其次,软件工程需要更多的关注团队规模和集体效率,无论是其使用软件的组织,还是生产软件的组织。
    • • 第三,软件工程师,需要做出更多复杂且高风险的决策,通常是基于对时间和增长的不精确的预估。

软件工程的3个特性

软件工程不是编程,软件工程是随着时间而不断集成的编程工作。

软件工程在时间、规模和权衡3个维度上的表现特性分别为:

软件工程的可持续性:在软件的预期生命周期内,在业务和技术的双重发展中,都需要有能力做出对有价值的变化的有效反应,这就是软件的可持续性。

软件工程的规模性:软件工程师一项团队工作,团队的协作,包裹更多人的参与,甚至多个团队的协作,都会到来新的问题。在规模增加时,如何能够更好的交付有价值的系统。

软件工程的复杂性:随着组织的成长和项目功能的扩展,软件系统的生产是否能够变的更加高效,持续交付的成本是否可控。

时间与变化

在软件的预期生命周期上,在低点和高点之间显示某个地方出现了一个转变:某个项目必须开始对不断变化的外界做出反应。

对于任何一个一开始就没有计划升级的项目,这种变化可能是非常痛苦的,原因主要有三点:

  1. \1. 正在做的一项任务,还没有完成,但已经有更多的隐含的假设被注入程序之中。
    • \2. 尝试进行升级的工程师机会不太可能有此类任务的相关经验。
    • \3. 升级的规模往往比平时要大,一次进行累计了几年的大升级,而不是渐进式升级。

一个系统,不但要完成第一次大的升级,且要达到能够可靠地一直保持这种持续的最新状态,才是其长期可持续性的根本。

可持续性要求对所需变更的影响进行持续的规划和管理。

海勒姆定律(Hyrum’s Law)

海勒姆定律:

当一个API有足够多的用户时,在约定中你所承诺的已不再重要:所有在你系统里被观察道德行为,都会被一些用户所依赖。

这是软件系统的熵增:随着时间的推移,对变化和维护的讨论,必须要意识到海勒姆定律。

根据热力学第二定律,熵永不减少,但并不意味着我们不应该去尝试提高功效。

在软件工程中,我们不能完全的避免海勒姆定律,但我们可以去减轻它。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
链图片转存中…(img-0dRUUALn-1726032480096)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值