在腾讯开发 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版)》,届时内容会更加丰富,更加系统化,也会新增很多冰河实际经历过的 高并发、大流量场景下 的真实案例,以方便小伙伴们更好的学习并发编程。
之前也有不少小伙伴问我:「精通高并发系列」的文章会一直更新吗?
我的回答是:「精通高并发系列」的文章会一直更新。
这里,我再唠叨两句:当然,期间也会不断更新其他专栏的文章。期间的心酸只有自己知道,从做公众号开始,就再也没有了周末和业余时间。
别人下班后休息了,我在画图、敲代码、写文章,别人周末出去嗨了,我也在画图、敲代码、写文章。一路走来其实挺不容易的,每一篇文章都要经过:构思、写大纲、画图、敲代码验证、调试代码以保证代码的正确性,最后才是写文章将这些内容总结并整理出来。
累,确实是挺累的,不过看到自己写的文章被小伙伴们认可,更是被 微信公众号官方 推荐了,再多的苦和累,也值了!!
最后,小伙伴们,你们的微信里收到过 公众号官方推荐 的冰河写的文章吗?
写在最后
如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,都可以私信我交流,希望我的一些经历能够帮助到大家~~
推荐阅读:
- 《实践出真知:全网最强秒杀系统架构解密,不是所有的秒杀都是秒杀!!》
- 《从零到上亿用户,我是如何一步步优化MySQL数据库的?(建议收藏)》
- 《我用多线程进一步优化了亿级流量电商业务下的海量数据校对系统,性能再次提升了200%!!(全程干货,建议收藏)》
- 《我用多线程优化了亿级流量电商业务下的海量数据校对系统,性能直接提升了200%!!(全程干货,建议收藏)》
- 《我用10张图总结出了这份并发编程最佳学习路线!!(建议收藏)》
- 《高并发场景下一种比读写锁更快的锁,看完我彻底折服了!!(建议收藏)》
- 《全网最全性能优化总结!!(冰河吐血整理,建议收藏)》
- 《三天撸完了MyBatis,各位随便问!!(冰河吐血整理,建议收藏)》
- 《奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程知识是你必须要掌握的!完整学习路线!!(建议收藏)》
- 《奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些核心技能是你必须要掌握的!完整学习路线!!(建议收藏)》
- 《奉劝那些刚参加工作的学弟学妹们:这些计算机与操作系统基础知识越早知道越好!万字长文太顶了!!(建议收藏)》
- 《我用三天时间开发了一款老少皆宜的国民级游戏,支持播放音乐,现开放完整源代码和注释(建议收藏)!!》
- 《我是全网最硬核的高并发编程作者,CSDN最值得关注的博主,大家同意吗?(建议收藏)》
- 《毕业五年,从月薪3000到年薪百万,我掌握了哪些核心技能?(建议收藏)》
- 《我入侵了隔壁妹子的Wifi,发现。。。(全程实战干货,建议收藏)》
- 《千万不要轻易尝试“熊猫烧香”,这不,我后悔了!》
- 《清明节偷偷训练“熊猫烧香”,结果我的电脑为熊猫“献身了”!》
- 《7.3万字肝爆Java8新特性,我不信你能看完!(建议收藏)》
- 《在业务高峰期拔掉服务器电源是一种怎样的体验?》
- 《全网最全Linux命令总结!!(史上最全,建议收藏)》
- 《用Python写了个工具,完美破解了MySQL!!(建议收藏)》
- 《SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)》
- 《MySQL 8中新增的这三大索引,直接让MySQL起飞了,你竟然还不知道!!(建议收藏)》
- 《撸完Spring源码,我开源了这个分布式缓存框架!!(建议收藏)》
- 《亿级流量高并发秒杀系统商品“超卖”了,只因使用的JDK同步容器中存在这两个巨大的坑!!(踩坑实录,建议收藏)》
- 《奉劝那些刚参加工作的学弟学妹们:要想学好并发编程,这些并发容器的坑是你必须要注意的!!(建议收藏)》
- 《公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)》
- 《奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程核心技能是你必须要掌握的!!(建议收藏)》
- 《阿里面试官:高并发大流量秒杀系统如何正确的解决库存超卖问题?(建议收藏)》
- 《Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)》
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,我是冰河,我们下期见~~
以上是关于在腾讯开发 QQ IM 的工作体验是怎样的的主要内容,如果未能解决你的问题,请参考以下文章
腾讯QQ全新macOS Catalyst转制体验版发布:众多手机QQ特性,版本号8.3.6