圆一个构建大系统的梦

来源:互联网 发布:女孩子的情绪 知乎 编辑:程序博客网 时间:2024/04/29 11:25

圆一个构建大系统的梦

文/腾讯soso 邓大付

    邓大付,1997年本科毕业于上海同济大学机械学院。在天津展转3年之后,2000年重返校园,在武汉华中科技大学计算机学院开始了5年的硕博连读历程。2005年4月毕业后,留校任教4个月。于05年8月底正式加入腾讯。现任搜索平台部网页搜索中心下载副总监, 公司的搜索技术专家。

    2005年8月,怀着能参与构建一套使用几千台服务器大型系统的渴望与梦想加入了腾讯。由于之前一直从事多媒体和P2P方面的研究工作,“搜索引擎”这个东东对于当时我的理解能力来说,只是一个使用几千台服务器的大型系统。

    加入腾讯之后的大半年时间内,除了完成智能机器人小Q的设计和开发工作之外,其它精力都用在收集整理和阅读2005年之前发表在知名学术会议和杂志上关于搜索引擎架构、分词算法、反作弊、页面信息抽取、相关性排序算法、爬虫调度、页面指纹算法等多个方面的学术论文上。正是这半年时间的广泛阅读,使我对搜索引擎的理论知识体系有了比较全面的认识和了解,同时也感受到搜索引擎后台技术的博大精 深。

    2006年搜索技术研发中心成立之后,开始了真正意义上的搜索引擎技术探索之路。参与的第一个项目是音乐搜索引擎。当时负责音乐搜索引擎爬虫子系统的架构设计和抽取模块的开发。经过4个多月和团队同事的共同努力,第一款自主研发的垂直搜索引擎上线运营。经历了05年的理论知识准备阶段和06年与搜索引擎的第一次亲密接触之后,梦想中的超大系统--网页搜索引擎的开发于07年正式开始。两次封闭开发,上百个子模块的设计讨论和PK,无数个日日夜夜的编码和Debug。在公司各级领导的鼎力支持下,网页搜索引擎在09年9月成功替换原Google引擎。

    回顾过去5年的点点滴滴,将一些个人的心得总结如下,与大家一起分享:

    首先,相关领域技术资料的广泛阅读对技术人员的成长至关重要。

    网页搜索引擎是一个庞大的系统,里面涉及到海量数据处理、分布式系统架构、数据挖掘、机器学习等众多的知识领域。仅仅是引擎中的子模块就有几百个之多,并且很多模块之间关联紧密。新的同事进来后,往往会分配一些模块的开发和维护工作。如果不注意对整体系统架构的理解和其它相关知识的学习,会对工作中的沟通造成较大的障碍;同时,也会使自己掌握的知识体系有缺陷,很难在所负责模块的算法和架构优化上有所突破。

    其次,掌握了扎实的基本编程功底和算法功底后,需要阶段性的对所负责模块或者子系统的架构和核心算法进行总结和重新考量。

    在总结和重新考量的过程中去发现问题和解决问题。过去的三年当中,网页搜索引擎下载子系统的每个子模块都经历过2到3次的重构。而每次的重构,都是来自于阶段性总结过程所发现的架构和算法的问题。

    最后,要保持一份开放平和的心态。

    所谓“严于律己,宽于待人”,工作中随时诚恳的接收别人的批评与意见,能平和的对待同事的工作失误对自己工作的影响,不抱怨,不放弃。只要团队还在,团队中弟兄姐妹们的心还在,就没有解决不了的难题。

    大系统的梦虽然已圆,搜索之路却刚刚起步。展望未来,一方面,搜索的基础架构和用户体验还与主要竞争对手有着一段差距,我们要努力迎头赶上;另外一方面,在个性化和智能化的搜索上,我们要利用公司现有资源,创造出差异化的产品特色,更加贴心的满足用户搜索需求。