首页天道酬勤o记驮包(o记全称)

o记驮包(o记全称)

admin 11-29 23:22 195次浏览

在ycombinator上,我看到O码农夫土草O码数据库的代码一塌糊涂。个人觉得挺有意思的。以下是O记录数据库的情况。

o记住数据库12.2 c是接近2500万行的C语言代码。

只需修改一行代码,让1000个测试用例失败。几代程序员都在这个代码基础上工作。当然,每个人都有不同的截止日期,所以他们也在这堆辣子鸡中加入了一些新的辣子鸡。

逻辑、内存管理和上下文切换非常复杂,由成千上万个标志控制。即使你想了解一个宏的功能,也需要一两天的时间。

程序员通常需要了解20多个不同的标志值及其影响,以便预测不同情况下代码的行为。当你很厉害的时候,你需要了解100多面旗才能做到这一点。

o数据库之所以还能存活并持续运行,主要是因为有数百万个测试用例。

o记住数据库开发者的生存环境如下:

开始解决新的bug

花两周的时间来了解20多个不同的标志是如何导致这个错误的。

向新场景添加新标志,并添加新代码来解决问题。

提交代码,100-200台机器会编译代码,得到一个新的数据库,然后运行测试。

明天回家开始做别的事情。运行测试需要20-30个小时。

重复上述过程,直到所有标志组合正常工作。

有一天0测试失败了。

给你的新代码添加100个测试代码,准备好让另一个倒霉的代码农民来修复你的错误。

提交最后一轮考试,然后提交复习。审核本身可能需要2周到2个月的时间。转到下一个bug并继续工作。

一段时间后(2周到2个月),代码将合并到主分支中。

以上是O码农民的生活环境。想象一下开发新功能有多可怕。开发一个小的新功能需要六个月到两年的时间(比如在认证模式中加入AD认证)。其实O能工作是个奇迹。

在原帖的评论区,有人向富衬衫扔锅,说富衬衫的代码写得不好(不知道读者是否同意,我觉得富衬衫有责任,但不是所有的锅都是富衬衫)。

此外,有人说ASML也是这样。O记录中仍然有自动化测试,ASML没有自动化测试。(译者:ASML是世界上最大的口罩对准器制造商。英特尔、三星和TSMC都在使用它的口罩对准器,市场份额超过90%。)

ASML可能有1-2台机器用于测试。这些是即将装运但尚未组装的机器。这些机器足以完成测试。ASML还有2000多万行C语言代码。如果当天施工完成,那么你的团队当晚就有15分钟的时间测试功能。如果不幸没有完成,明天再来。

在ASML,如果你想修复一个bug,你首先需要在word文档中描述它。然后提交给各个风险评估经理。他们将评估bug修复是否会在其他地方引起问题。但是没有自动测试,所以他们用自己的经验来猜测bug修复是否风险太大。如果他们认为风险不大,那么你可以在六条产品线中进行bug修复。根本没有自动测试。

没有其他公司能制造出ASML的口罩对准器,但ASML的软件还处于史前时期。(译者:上世纪90年代,ASML干掉了佳能/尼康的面膜对准器,觉得后两者的面膜对准器代码就是一坨屎。)

从上面ASML口罩对准器和O-Records数据库的反馈来看,我们的人机技术基础不是很扎实。

几千万行代码,不管是什么语言,应该很难在上面开发。一般公司,几十万行的Java代码可能维护不好。我已经初步了解了接下来几个著名的开源项目。Linux内核现在大约有2000万行代码,MySQL 5.6有154万行代码,PostgreSQL有97万行代码,Hadoop有291万行代码,Kafka有34万行代码,Spark有40万行代码。从代码量来说,除了Linux内核,其他有O记录的数据库不是同一个数量级的,代码质量差是因为O记录不是开源的。商业产品有期限压力。如何在快速迭代的过程中保证代码质量?

自动化测试(包括单元测试和集成测试)

人工测试

代码审查

系统结构

良好的编码习惯

SAAS产品的先天优势(指灰度发布/随时回滚)

如果您认为以上所有选项都可用,选项有多重要?

也许我们大多数人都没有维护过2000万行代码的产品。你认为我们如何用这个代码规模更好地维护产品?

模块化

微服务

更好的测试环境

关于基础软件测试,我还想说一件事。看完原文,去看tidb的测试用例。据初步统计,也有1000万个自动测试用例(当然,一位光头大叔也透露,他在测试机上花了几千万美元。

并说是少量的钱),我个人认为从测试覆盖率来看,已经达到了一个稳定的商业产品的要求。

本文部分内容翻译自ycombinator,并非对O唱片的批评。相反,我个人认为O唱片做得不错,国内很多公司可能达不到这个水平。本文旨在探讨在超大代码库的情况下,如何保证产品质量和迭代速度,相信大家都会有自己的见解。

原始地址:

https://news.ycombinator.com/item?id=18442941 UTM _ source=wanqiu . coutm _ campaign=wanqiu Dailyutm _ medium=网站

为了大家的方便。

看贴图:

转载本文请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

活动预告:

11 月 23 ~ 24 日,GIAC 全球互联网架构大会将于上海举行。GIAC 是高可用架构技术社区推出的面向架构师、技术负责人及高端技术从业人员的技术架构大会。今年的 GIAC 已经有微软,腾讯、阿里巴巴、蚂蚁金服,华为,科大讯飞、新浪微博、京东、七牛、美团点评、饿了么,才云,格灵深瞳,Databricks,等公司专家出席。本周购买可享门票88折优惠,高可用架构会员低至6折。

本期 GIAC 大会上,质量保障/DevOps/数据库 部分精彩的议题如下:

参加 GIAC,盘点2018最新技术。点击“阅读原文”了解大会更多详情。

Qt专栏之模态与非模态对话框的实现怎么用JavaScript实现日期时间转时间戳
nginx apache(nginx反向代理) go语言(go语言能开发什么)
相关内容