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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在腾讯开发 QQ IM 的工作体验是怎样的相关的知识,希望对你有一定的参考价值。

作者:高昌健
链接:https://www.zhihu.com/question/20672463/answer/15809516
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我之前在 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 时会遇到部分代码无法查看的情况。
参考技术A 想法是很新颖,具体实施起来是很困难的,
信息时代下,还是很多盲眼的信息蜘蛛侠,接受不来的东西, 你花多少精力时间都是白搭
,脚踏实地的,去想想 做一个实业比较好吧

冰河又被腾讯推荐是一种怎样的体验?

大家好,我是冰河~~

继冰河之前被腾讯大佬邀请去做技术分享后,这次你们的冰河又被腾讯推荐了。确切地说,是冰河写的「精通高并发系列」文章被 微信公众号官方 推荐了。本来我本人是没怎么留意的,不知道大家在公众号里有没有留意过。比如,我第一次注意到文章被推荐了,就是在某个群里,一名小伙伴艾特我。

这种推荐不是每个小伙伴都能收到的。我本人目前还没收到过这种推荐。不过已经有不少小伙伴向我反馈说他们已经收到过公众号官方推荐的我写的「精通高并发系列」文章了。

事后,我在想:这应该就是微信公众号官方对于文章的一种认可吧。到目前为止,我本人是没收到过这种推荐,不知道小伙伴们有没有收到过。

咱们也来说说「精通高并发系列」写了哪些文章吧。从2020年疫情开始更新并发编程的文章,到发这篇文章的时候,「精通高并发系列」专栏已经断断续续更新了100篇文章了。

精通高并发系列」专栏整体上涵盖 源码分析、基础案例、实战案例、面试和系统架构 几大部分, 我个人觉得这应该是全网最全的免费学习并发编程的专栏了吧。你们说呢?而且几个月前我把公众号里「精通高并发系列」中的一部分文章整理成了《深入理解高并发编程》电子书,目前全网下载量已经突破 50W+ ,这也说明小伙伴们对于并发编程确实是很感兴趣的。

发布电子书之后,冰河也在持续更新「精通高并发系列」的文章,所以,「精通高并发系列」中的文章比电子书更全了,大家可以订阅「冰河技术」 微信公众号的「精通高并发系列」学习并发编程。

到合适的时候,我会再将这些文章进行分类整理成《深入理解高并发编程(第2版)》,届时内容会更加丰富,更加系统化,也会新增很多冰河实际经历过的 高并发、大流量场景下 的真实案例,以方便小伙伴们更好的学习并发编程。

之前也有不少小伙伴问我:「精通高并发系列」的文章会一直更新吗?

我的回答是:「精通高并发系列」的文章会一直更新。

这里,我再唠叨两句:当然,期间也会不断更新其他专栏的文章。期间的心酸只有自己知道,从做公众号开始,就再也没有了周末和业余时间。

别人下班后休息了,我在画图、敲代码、写文章,别人周末出去嗨了,我也在画图、敲代码、写文章。一路走来其实挺不容易的,每一篇文章都要经过:构思、写大纲、画图、敲代码验证、调试代码以保证代码的正确性,最后才是写文章将这些内容总结并整理出来。

累,确实是挺累的,不过看到自己写的文章被小伙伴们认可,更是被 微信公众号官方 推荐了,再多的苦和累,也值了!!

最后,小伙伴们,你们的微信里收到过 公众号官方推荐 的冰河写的文章吗?

写在最后

如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,都可以私信我交流,希望我的一些经历能够帮助到大家~~

推荐阅读:

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,我是冰河,我们下期见~~

👇🏻 搜索下方 公众号 关注我👇🏻

以上是关于在腾讯开发 QQ IM 的工作体验是怎样的的主要内容,如果未能解决你的问题,请参考以下文章

腾讯 QQ 发布 macOS Catalyst 转制体验版

在腾讯工作是一种怎样的体验?

腾讯QQ全新macOS Catalyst转制体验版发布:众多手机QQ特性,版本号8.3.6

腾讯QQ PC测试版和macOS Catalyst转制体验版更新

如何获取他人QQ好友名单,有这样的软件吗

腾讯IM实战:低代码超快实现即时通讯录