您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    顺序员吐槽:我永远不会再为 Oracle 任务了 !
    时间:2018-11-19 12:12 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    顺序员吐槽:我永远不会再为 Oracle 任务了 !

    近日,某网友在 Hacker News 上发起了一个 “你见过的最蹩脚的代码是什么?” 的成绩,惹起了普遍关注和讨论,评论数已接近600条。其中,一位 ID 为“oraguy”的顺序员对 Oracle 数据库代码的吐槽,更是引发热议。内容大意如下:

    Oracle 数据库 12.2。它有近 2500 万行 C 代码。

    这有多恐惧,简直难以想象!你无法在不破坏成千上万个现有测试的状况下更改产品中的单行代码。好几代顺序员在有限的项目期限内编写了这些代码,其中充满着少量的渣滓代码。

    十分复杂的逻辑、内存管理、上下文切换等,这些都用数千个 flag 衔接起来。整个代码充满着奥秘的宏命令,假设不拿出笔记本,并且手动去展开相关的宏命令,就无法理清楚这些命令。甚至能够需求一两天赋能真正了解某个宏命令的作用。

    有时你需求理顺 20 个不同 flag 的值和效果来预测代码在不同状况下的行为方式。有时多达数百个 flag !这一点也不夸张。

    这个产品依然存活并且依然可用的独一缘由是数百万次的测试!

    以下是 Oracle 数据库开发人员的日常:

    末尾处置一个新的 bug 。

    花两周的时间试图了解 20 个不同的 flag ,这些 flag 以奥秘的方式相互交互,招致这个困境。

    再添加一个 flag 来处置新的特殊场景。添加几行代码来反省此 flag ,并处置有成绩的状况,规避该 bug 。

    将更改提交到包含大约100-200台效劳器的测试效劳器集群,这些效劳器将编译代码,构建新的 Oracle 数据库,并以散布式方式运转数百万个测试。

    回家。第二天来下班,继续处置别的 bug 。测试能够需求20-30个小时才能完成。

    再回家。再来下班,反省你的集群测试结果。顺利的话,会有大约100个失败的测试。倒运的话,将有大约1000个失败的测试。随机选择一些测试并试图搞清楚你的假定出了什么成绩。或许还需求思索10多个 flag 才能真正了解 bug 的本质。

    再添加一些 flag 以尝试处置成绩。再次提交更改以停止测试。再等20-30个小时。

    来来回回重复两周,直到你失掉了将这些 flag 组合起来的“奥秘咒语”。

    终有一天,你会成功,不再出现测试失败。

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

    提交最后一轮测试的成果。然后提交以供审核。审查本身能够还需求2周到2个月。所以如今继续去处置下一个 bug 。

    在2周到2个月之后,一切已就绪,代码将最终兼并到主分支中。

    以上就是对在 Oracle 修复 bug 的顺序员日常生活的描画,一点也不夸张。如今想象一下开发新功用会有多么恐惧。开发一个小功用需求6个月到1年的时间(假设是添加一种新的身份验证形式,比如支持 AD 身份验证,能够需求2年)。

    这款产品本身就是一个奇观!

    我不再为 Oracle 任务了。永远不会再为 Oracle 任务了!

    原文地址

    【编辑引荐】

    开发者调查显示他们对 Python 和 Go 十分称心

    在操作系统、芯片范围跌倒的中国顺序员如何崛起?

    顺序员恋爱比例居然最高 2018互联网人恋爱调查报告出炉

    年过35岁的顺序员都去哪了?一张图道尽老顺序员们的把戏出路

    面试了近百人,如何招到靠谱的顺序员?

    (责任编辑:admin)