公司里面的关键代码可能会实现五遍,反复迭代,最早的实现和后期几乎可以看作两个产品,长期优化,反复测试,7*24小时,尤其是开发电信级代码,基础架构上,即使一个随机bug的发生率低于10的-12次方,也要抓住不放,要给予解释和给出结论,最终的结果就有很大的区别,这样的软件基础架构很稳定,开发软件各种爽,工业级别的基础架构代码要远远优于学院派的代码。 一系列的严格的测试下来,连std库,Linux tcp ip库都有多处隐藏很深的多个bug被发现,深入这些代码后,一些常用组件bug的影响是如此深远,令人惊叹。我们内部评估的结论是: 应该有更多大公司的团队早于我们发现这些bug,这些bug至今未修复的一个原因在于技术门槛,或者某软的大型软件和关键性应用需要这些门槛将二流团队挡在门外,毕竟现在IT产业的竞争都到了你死我活的地步,惨烈到了996加班加到猝死的地步,稳定性也是重要的竞争力。某些公司的某些程序员可能加班到死也想不通,为什么bug找不到,因为底层库有随机bug,而且有的bug是之前没有的,从某库管理员升级了版本之后,由于某个充满争议的所谓的优化之后,当然你提交patch也未必能够被釆纳的,前面就争议过,被质疑,然而intel公司有技术大拿说此优化没有问题,问题搁置。所以诺基亚死于多线程,也是死于bug。稳定性方面的问题只能各团队靠自己解决,解决了就能有机会进入某些关键领域,解决不了就只能靠人力去堆,靠服务去弥补,实在不行只能靠加班文化去感动领导,至少大家都尽全力了,对付着用吧。程序员加班的最大原因是解决bug。 学校写代码肯定沒有这么多测试,但是,大型软件的测试是决定生死存亡的,是要敢于测试一切可能性的,包括一切外部库。测试也不是简单跑几遍,有的测试是要测试上万亿次的,尤其是多线程并发下的复杂项目。学院派的代码商业价值不高,在于缺乏真正严格意义上的测试。
转自:https://www.zhihu.com/question/66195500
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!