Google软件工程,软件工程和编程的区别是时间持续性和人的规模化

软件工程就是随着时间而不断集成的编程。时间是软件工程的重要维度。对于使用时间仅为一小时的程序,你不太可能需要适应底层库、操作系统、硬件或者语言的新版本。随着程序生命周期的延长,变更也变得更加重要。

如果在软件的预期生命周期内,无论是出于技术理由还是业务理由,你都有能力对任何有价值的变化做出反应,那么你的软件是可持续的。

软件工程的另一个方面是考虑规模。有多少人参与?随着时间的推移,他们在开发和维护中扮演什么角色?编程任务通常是个人的任务,但软件工程任务是团队工作。

软件工程是多人开发多版本程序。软件工程和编程的区别是时间和人的区别。团队协作带来了新的问题,但也提供了比任何单个程序员更大的潜力,生产出有价值的系统。

团队组织,项目构成以及软件项目的政策和实践都决定着软件工程的复杂性。这些问题是规模所固有的:随着组织的成长和项目的扩展,它在生产软件方面是否变得更加高效?我们的开发工作流程是随着我们的成长变得更加高效,还是我们的版本控制和测试策略使我们付出了更多代价?从早期的软件工程开始,人们就围绕着沟通和人员规模的问题进行了讨论。

在一次性项目和持续数十年的项目之间的某个时间点上,会发生这样一个转变:某个项目必须开始对不断变化的外界做出反应。对于任何一个从一开始就没有计划升级的项目,这种转变可能变得非常痛苦。

对于一个项目来说,不但完成了第一次大的升级,而且要达到了能够可靠地一直保持这种持续最新的状态,才是其长期可持续的根本。可持续性要求对所需变更的影响进行持续的规划和管理。

对于短期编程和预期生命周期更长的代码来说,我们需要意识到碰巧可工作和可维护之间的区别。

对于你的组织生产和维护的那些代码,其所依赖的一切都应该在总体成本和资源消耗方面是可扩展的。资源包括人员和代码库等。

在开发人员工作流的早期发现问题通常会降低成本。从概念和设计开始,到实现、评审、测试、提交金丝雀部署和最终的生产部署,将问题检测移到更早的左边会比等到更晚再检测成本更低。

编程与软件工程的区别很大程度上源于时间的推移对代码的管理、时间对规模的影响以及面对这些想法的决策。编程是产生代码的行为。软件工程是一组必要的政策、实践和工具使得代码在跨团队协作和使用时更有效。

9168aa17a5a48f5cd02c0026a9da00b1.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值