你见过的最糟糕的代码是什么?

栏目: 数据库 · 发布时间: 7年前

内容简介:来自HackerNews的讨论,其中一个回答非常有趣:Oracle数据库12.2。它接近2500万行C代码。

来自HackerNews的讨论,其中一个回答非常有趣:

Oracle数据库12.2。

它接近2500万行C代码。

多么难以想象的恐怖!你无法在生产环境下,且需要通过1000次测试的情况下,修改一行代码。几代 程序员 在困难的期限内却处理了这些代码,并用各种废话填充了代码。

非常复杂的逻辑,内存管理,上下文切换等都与数千个标志一起保存。整个代码都带有神秘的宏,如果没有选择笔记本并且手动扩展相关的宏,就无法破译。可能需要一天到两天才能真正理解宏的作用。

这个产品仍然存活并且仍然有效的唯一原因是通过了数百万次测试!

以下是Oracle数据库开发人员的生活方式:

- 开始处理新的bug。

- 花两周的时间试图了解20种不同的标志,这些标志以神秘的方式相互作用。

- 再添加一个标志来处理新的特殊情况。添加几行代码来检查此标志并解决有问题的情况并避免该错误。

- 将更改提交到包含大约100到200台服务器的测试服务器场,这些服务器将编译代码,构建新的Oracle数据库,并以分布式方式运行数百万个测试。

- 回家。第二天来,继续做其他事情。测试可能需要20小时到30小时才能完成。

- 回家。第二天来,检查你的农场测试结果。在美好的一天,将有大约100个失败的测试。在糟糕的一天,将有大约1000个失败的测试。随机选择一些测试并尝试了解您的假设出了什么问题。也许还有10多个标志要考虑才能真正理解bug的本质。

- 添加一些标志以尝试解决问题。再次提交更改以进行测试。再等20到30个小时。

- 冲洗并重复另外两周,直到你得到组合标志的神秘咒语。

- 最后一天,你会成功,0测试失败。

- 为您的新更改添加一百多个测试,以确保下一个不幸接触这段新代码的开发人员永远不会破坏您的修复。

- 提交最后一轮测试的工作。然后提交以供审核。审查本身可能还需要2周到2个月。所以现在继续讨论下一个bug。

- 在2周到2个月之后,当一切都完成后,代码将最终合并到主分支中。

以上是对Oracle修复bug的程序员生活的非夸张描述。现在想象一下开发新功能会有多么恐怖。开发一个小功能需要6个月到一年(有时是两年!)(比如添加一种新的身份验证模式,比如支持AD身份验证)。

这款产品即使有效,也是一个奇迹!

我不再为Oracle工作了。永远不会再为Oracle工作了!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

极致:互联网时代的产品设计

极致:互联网时代的产品设计

戴维•罗斯 / 中信出版集团 / 2016-6 / 49.00元

在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具