在腾讯开发QQ IM 的工作体验
2013-03-17 14:13
316 查看
我之前在 PC QQ(以下简称 QQ)部门做过一段时间客户端开发,就讲讲我的一些经历。
开发每个人有两台联想台式机,预装 Win 7 和一堆内网监控软件,你懂的。配置还可以,不过其实开发 QQ 有时候还是会有点吃力。一台接入开发网,只能用来开发和上公司内网。另一台接入办公网,可以上外网,但是腾讯内部有白名单,非腾讯自家客户端上网也必须设代理,所以有时候就比较尴尬,比如如果某个软件不支持代理就傻了。我曾经想 push 代码到 GitHub,后以失败告终。总部大厦几乎每个地方都有免费 Wi-Fi,所以如果你自带电脑的话上网还是可以比较爽的。
开发环境 Visual Studio 2005,我因为习惯了 Vim,所以都是在 Vim 里敲代码,然后拿 VS 来编译和跑程序。强烈推荐再装上「小番茄」[1],至于我们有没有交钱这个你也懂的。版本控制是 ClearCase(大槽点之一。。。以下简称 CC),CC 绝对是我见过的最逆天、最无敌的软件,安装文件硕大无比,用的时候卡得一逼。
QQ 内部对版本控制系统的使用要求比较严格,当你需要开发一个新需求的时候要先发一封邮件给 CC 管理员(居然有单独的管理员!),让他给你建一个子流(相当于建分支,建分支居然还要申请!)。然后从 CC 服务器上把新建的子流拉到本地,注意,虽然这只是一个分支,但是你需要把整个 QQ 代码都再重新下载一遍!所以一般这种时候你可以去喝杯水看看风景啥的,时间取决于网速,一般 30 分钟至数小时不等。然后你终于开始了「愉快」的开发生活,你会发现每当你要修改一个文件的时候,你需要先 checkout 它(注意跟 Git
的 checkout 没有半毛钱关系),checkout 完之后就只有你能改这个文件,如果刚好有人和你在同一个子流开发,必须等到你 checkin 之后才能 checkout 这个文件。当然如果你等不及别人 checkin,你可以先 hijack 这个文件,改完之后再跟别人的修改合并。写好代码想编译下看看效果,首次编译 QQ 的话耗时巨长无比(而且每次拉了新的子流后都要经历一次),所以你又可以去喝杯水看看风景啥的,时间取决于机器性能,一般 1 小时至数小时不等。并且编译过程中开发机基本处于卡死状态,根本没法用,于是我通常都是吃饭前或者下班回家前干这种事情。
开发完成之后没有 code review,况且要通过 CC 来看更改也极为麻烦。这时需要制作一个安装包给测试人员,打安装包这种事情一般交给编译机,时间 20 分钟左右,最快记录貌似是 8 分钟,当时负责优化性能的同学还拿了奖啥的。测试过程中使用内部系统 TAPD 进行 bug tracking,每个 bug 分高、中、低三个等级,QQ 这边的 QA 对于质量要求很严格,需要同时通过功能测试和性能测试,通常要求是 0 个高单和中单(俗称 0 bug 合入),少量低单是允许的。在经过严格的测试之后就可以合入主流了,使用
CC 的 deliver 功能来完成。但最好是先 rebase 主流(相当于 merge 主流,同样跟 Git 没有半毛钱关系),确保没有问题之后再 deliver。至此你的开发任务已经完成,接下来就是等待版本发布。
QQ 内部有一套成熟的客户端框架,代号 Hummer(蜂鸟),提供了诸如代码解藕、公共库、插件机制、国际化等功能。自研的皮肤引擎,代号 GF(GUI Foundation),用来实现各种界面效果。这两块是作为 QQ 开发者必须要掌握的,同时围绕这两块还开发了一堆小工具,最常用的就是 LogViewer,用来查看日志文件,还有性能工具用来分析代码性能。底层代码和应用层代码是分离的,因此有时在 debug 时会遇到部分代码无法查看的情况。
最后配图一张,原谅写得有点罗嗦。话说自从来了知乎以后,就再也体会不到那种按下 F7 的快感了。
相关文章推荐
- 在腾讯开发 QQ IM 的工作体验是怎样的?
- 在腾讯开发QQ IM 的工作体验
- 在腾讯开发 QQ IM 的工作体验是怎样的?
- 敬请贤者:WEB、IOS开发(2年以上经验,大专);CTO、产品经理,运营专员 电商服装鞋饰买手(2年以上经验,服装或鞋类);体验店店长 (2年以上经验,服装或鞋类) 工作地点:丰台南苑路;有意者小窗QQ2211788980 - V2EX
- 腾讯手QQ核心技术-NDK开发语音消息变声功能-动脑学院
- [新闻资讯] Flex开发指南---创建用户体验的工作流程和最佳实践
- 腾讯开发WIFI手机QQ 紧抓高端无线互联网用户
- 英特尔与腾讯签署MeeGo软件开发平台合作意向书 - 携手创新,为中国用户打造高品质移动体验
- 腾讯称开发QQ外挂均属侵权 律师观点不一
- 使用腾讯开发平台获取QQ用户数据资料
- iOS开发集成友盟,腾讯QQ登录授权失败
- 招聘Windows环境下客户端VC贤者,从事QQ Client端程序开发工作【借首页人气】
- 腾讯手机QQ产品经理丨我做产品的「失败」体验
- 腾讯 qq for linux 及 rdesktop 安装体验
- 开发人员体验测试工作
- 【推荐】软件开发,网站开发,IPhone, Azure开发工作室QQ:99639667【海彤工作室】
- MOSS 2010:Visual Studio 2010开发体验(32)——工作流开发最佳实践(四):可重用工作流
- gsoap开发实例-查询腾讯QQ在线状态
- MOSS 2010:Visual Studio 2010开发体验(34)——工作流开发最佳实践(六):网站工作流