关于软件工程的类比

我不喜欢“码农”“码工”“程序猿”这类自贬身价的词语。

我的爷爷是一名裁缝,在我的记忆里他靠在家里给别人定做衣服谋生,算是一个手艺人。我的职业生涯一直和代码打交道,靠写代码谋生,也算是一个手艺人。当然手艺好的人应该能称得上是代码工匠吧!

我喜欢把这群代码工匠称为软件设计师。为什么是软件设计师而不是软件工程师,这源自于我对软件工程的不同理解。


建筑工程大致可以分为两个阶段,设计阶段和施工阶段。传统软件工程总是习惯与建筑工程进行类比,将需求分析、总体设计、详细设计纳入设计阶段,而将编码,编译,测试,发布等纳入施工阶段。因此编码人员自然就属于“工程师”这一类别。

然而在实际的工作中,软件的模块设计和编码是脱节的,实际情况是:再详细的设计也无法完全指导编码,在编码的过程中往往会有产生很多新的创造,有时甚至需要返工总体设计。因此,我倾向于把编码环节纳入到设计阶段,这就是新的软件工程。其强调的观点是:代码就是设计。因此我们成为了软件设计师。

那么新的软件工程中施工阶段做些什么呢?答案是:从代码编译开始,这一阶段完全可以交给机器来完成。我们需要构造一套自动化的流程,还可以引入分布式编译技术以加快速度,然后需要有自动化的测试用例(当然用例的编写在编码的同时就已经完成)来保障软件的功能,然后就能做到持续发布。当然人工的测试在这一阶段还是不可缺少了,人工测试的工作量投入取决于自动化测试的覆盖程度。

因此新的软件工程的理念是:设计的部分都由人来进行,施工的阶段全都交给机器。据我了解目前只有少数顶尖公司的部分产品能够做到持续发布,它将成为软件工程的一个新课题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值