您的位置:网站首页 > asp源码 > 正文

从20亿行代码中瞬间定位到你要查找的代码糖果云是如何做到的?

类别:asp源码 日期:2017-10-23 9:49:37 人气: 来源:

  有篇新闻报道了谷歌公司拥有20亿行代码(相当于40个Windows系统的代码,Windows有5000万行代码),几万名谷歌工程师同时在及更新这20亿行代码,创造了互联网上的一个又一个奇迹。

  据一位在微软及谷歌都供职过的工程师介绍,20 亿行代码虽然多,但对 Google 这个量级的公司来说不算什么了不起的事情,但Google 在这方面真正值得称道的,是Google 能够把这20亿行代码放在同一个库里面,让所有的工程师在同一个源码库上工作!这真是太方便了!任何人可以随意阅读几乎所有的代码来学习,重用别人的实现也变得极为简单。而在他去Google之前,在 Microsoft 工作时,每个组有每个组自己的库。在 windows server 组工作,就看不到 office 的代码,反之亦然。组和组之间如果存在共享代码的需求,需要复杂的协调工作,有些组还安排了专人来负责。本来查看几行代码仅需几秒钟的事情,要拖延到几天。

  从这个介绍来看,当时Microsoft 的开发比 Google 落后整整一代。由此带来的结果就是工程师在 Google 能够看到更多被广泛采用的高质量共享库,更多的提高开发效率消除重复劳动的工具,从而带来了更高的开发效率,以及工程师能够更快地成长,最终的结果就是谷歌的业务超出了微软:Chrome打败了IE, 打败了Windows Mobile。

  为什么重用代码对软件开发如此重要?我把程序员刚写出来经过编译的代码叫做生代码,而经过千百次运行证明准确无误的代码叫做熟代码,生代码要想变成熟代码,付出的时间成本以及人的脑力成本,超过写出生代码的10倍也不止!生代码写出来后要调试,功能基本无误之后还有各种测试,甚至产品上线数月之后还有bug,所以在软件开发中,应该尽量使用熟代码,以减少无谓的bug。

  开源软件的蓬勃发展,促进了软件技术的进步,因为开源软件源代码是公开的,任何人都能使用及修改。全球最大的开源项目聚集地Github,当前拥有开源项目800多万个,有如此多的开源项目,搜索引擎里也能搜到成吨的代码,然而实际情况是:大部分开发人员还在重写生代码,因为找到可重用的代码代价也很大,在搜索引擎里找代码,垃圾太多,在开源项目里找代码,也很费时间,Github的代码搜索功能很有限,拥有20亿行代码库的公司只有谷歌一家,不是每个公司都有像谷歌这样的先进的代码共享系统。

  因为响应足够快,糖果云在你每输入一个字符时都返回当前输入的搜索结果,很多时候,关键词尚未输入完毕,答案即已呈现。有人说百度似乎也有这个功能,百度的这个功能叫热词提示,例如你输入一个迪,提示迪丽热巴,但热词总量也就几十万个,总文本量不过几M,而糖果云的代码库,例如Chrome源码库,Android-7.1(内核7.1版)总文本量都在几个G以上,糖果云依然可以做到毫秒响应,快如闪电。

  再举一个更容易理解糖果云搜索特点的例子,代码中有个函数int main(), 关键词搜索int main能搜到(但搜索结果非常之多,不加双引号搜出许多int与main分离的结果来),在糖果云中,你可以搜索nt ma(int main()中包含nt ma,其它能匹配nt ma的地方就很少),找出你要搜索的目标的独特点,你就能一下把它找出来,这就是糖果云搜索的特点。

  从更方便检索代码的角度看,我们是有信心超越谷歌的,甚至现在已经超越,谷歌的代码库只有谷歌员工能使用,糖果云的代码库全所有开发人员均能使用,在10月底的版本中,我们将增加用户上传代码功能,代码分享功能,将糖果云建设成为所有开发人员的知识宝库。

  推荐:

  

0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: