我之前在 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 的工作体验相关推荐

  1. 在腾讯开发 QQ IM 的工作体验是怎样的?

    转载 http://blog.csdn.net/kobejayandy/article/details/8685271 目录 一.引言 二.个人网站 三.Oracle/支付宝/旺旺 四.淘宝技术发展( ...

  2. 使用腾讯开发平台获取QQ用户数据资料

    <今天是七夕:祝大家七夕嗨皮,前可么么哒,后可啪啪啪> Tips:本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ----------------------------------- ...

  3. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  4. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  5. 【产业互联网周报】阿里巴巴132亿元再建云计算中心;腾讯回应“QQ扫描读取所有浏览器的历史记录”;IBM中国研究院全面关闭...

    关注ITValue,看企业级最新鲜.最价值报道! [产业互联网周报是由钛媒体TMTpost发布的特色产品,将整合本周最重要的企业级服务.云计算.大数据领域的前沿趋势.重磅政策及行研报告.] 本周(1月 ...

  6. qq物联网 android sdk,物联网在腾讯:QQ物联

    原标题:物联网在腾讯:QQ物联 在物联网方面的一些产品,作为BAT三巨头之一,腾讯自然不能落后.本文就介绍一下腾讯的物联网平台,QQ物联. QQ物联:让每个设备成为一个QQ好友 QQ物联的最大特点,就 ...

  7. 针对QQ,TIM工作群提供服务的功能

    原因 QQ与TIM工作群功能不完善,提个意见的界面都无法粘贴,只好在这里做个记录 建议 工作群可以创建议题,按议题展开讨论,回复时可以分类别,是答案还是有相同的问题,回复得好的,可以评星,类似于论坛, ...

  8. 大数据开发就业如何?好找工作吗?

    大数据开发就业如何?好找工作吗?当今社会竞争残酷.生存压力大,不少90后面临薪资低.福利差.升职难.买房难.结婚难等困境,纷纷以"佛系青年"."丧青"自我标榜. ...

  9. 如何在Android手机中开发QQ账户登陆功能的应用

    2019独角兽企业重金招聘Python工程师标准>>> 背景 OAUTH 开发授权协议,为用户资源的授权提供了一个安全开放而又简易的标准.可以使用第三方的账户登陆另一个方的 应用或服 ...

  10. 极客日报:腾讯企业QQ将停运;雷军:小米汽车预计2024年量产;iPhone或将取消SIM卡槽,全部改用eSIM卡

    一分钟速览新闻点! 腾讯企业QQ宣布将停运:2022年1月31日不再提供服务 雷军曝小米动态:数字系列分"一大一小",汽车2024年量产 部分App禁止全部权限仍可获取用户信息 腾 ...

最新文章

  1. 00029_引用数据类型
  2. Python调用HTTP接口并传递cookie
  3. netcore部署到docker 实现excel生成_Docker部署Redis集群----第七节(docker-redis-sentinel集群实现篇)...
  4. boost::gil::packed_channel_value用法的测试程序
  5. delphi 鼠标获取窗口句柄_Windows窗口自定义,只需WindowTop一键设置
  6. 2014编程之美初赛第二场
  7. origin设置不同区域的颜色_[测试狗]Origin入门教程(二十四):效率翻倍小技巧——修改默认字体...
  8. Codeforces.802C.Heidi and Library (hard) (费用流zkw)
  9. 低压电力采集平台DW710C与PC沟通
  10. C# 引用访问权限,很多老手都不懂
  11. Carthage的安装和使用
  12. 【物流选址】基于matlab粒子群算法求解多物流中心选址问题【含Matlab源码 1458期】
  13. 用tomcat6修改java内存_Tomcat 服务器内存修改
  14. 程矢Axure夜话:Axure手机原型视频教程之图形解锁
  15. 2路10核物理服务器能否虚拟40vcpu,XenServer中Windows 7与XP多vCPU支持配置,cpu 2 核限制...
  16. excel报表汇总怎么做?
  17. matlab中garchred是什么意思,garch模型matlab
  18. ubuntu如何安装libz库
  19. 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
  20. cpc按点击计算怎么算_亚马逊CR怎么算?亚马逊CR及CTR计算公式介绍

热门文章

  1. VB里怎样使用GetWindowRect、GetClientRect、ScreenToClient、ClientToScreen
  2. Docker——Dockerfile构建镜像
  3. android 图层绘画分析,Android-绘图机制总结
  4. Android硬解码H264流
  5. ​有哪些比较好的录制游戏视频软件​,游戏录屏软件哪个好用
  6. 计算机软件 已录制 是指啥,录像软件是什么?怎么录制电脑屏幕视频?
  7. 人工智能的数学基础------- 矩阵迹与相似矩阵的本质
  8. 繁体转简体 java_java 中文简体与繁体的转换
  9. fiddler+xpose_JustTrustMe: 解决app应用在开启抓包工具后无法联网问题
  10. python编写程序掷骰子游戏_python学习之掷骰子游戏