中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

在騰訊開發(fā) QQ IM 的工作體驗是怎樣的?

2019-05-15    來源:yixieshi.com

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

我之前在 PC QQ(以下簡稱 QQ)部門做過一段時間客戶端開發(fā),就講講我的一些經歷。

開發(fā)每個人有兩臺聯(lián)想臺式機,預裝 Win 7 和一堆內網監(jiān)控軟件,你懂的。配置還可以,不過其實開發(fā) QQ 有時候還是會有點吃力。一臺接入開發(fā)網,只能用來開發(fā)和上公司內網。另一臺接入辦公網,可以上外網,但是騰訊內部有白名單,非騰訊自家客戶端上網也必須設代理,所以有時候就比較尷尬,比如如果某個軟件不支持代理就傻了。我曾經想 push 代碼到 GitHub,后以失敗告終?偛看髲B幾乎每個地方都有免費 Wi-Fi,所以如果你自帶電腦的話上網還是可以比較爽的。 

開發(fā)環(huán)境 Visual Studio 2005,我因為習慣了 Vim,所以都是在 Vim 里敲代碼,然后拿 VS 來編譯和跑程序。強烈推薦再裝上「小番茄」[1],至于我們有沒有交錢這個你也懂的。版本控制是 ClearCase(大槽點之一。。。以下簡稱 CC),CC 絕對是我見過的最逆天、最無敵的軟件,安裝文件碩大無比,用的時候卡得一逼。

QQ 內部對版本控制系統(tǒng)的使用要求比較嚴格,當你需要開發(fā)一個新需求的時候要先發(fā)一封郵件給 CC 管理員(居然有單獨的管理員!),讓他給你建一個子流(相當于建分支,建分支居然還要申請。H缓髲 CC 服務器上把新建的子流拉到本地,注意,雖然這只是一個分支,但是你需要把整個 QQ 代碼都再重新下載一遍!所以一般這種時候你可以去喝杯水看看風景啥的,時間取決于網速,一般 30 分鐘至數(shù)小時不等。然后你終于開始了「愉快」的開發(fā)生活,你會發(fā)現(xiàn)每當你要修改一個文件的時候,你需要先 checkout 它(注意跟 Git 的 checkout 沒有半毛錢關系),checkout 完之后就只有你能改這個文件,如果剛好有人和你在同一個子流開發(fā),必須等到你 checkin 之后才能 checkout 這個文件。當然如果你等不及別人 checkin,你可以先 hijack 這個文件,改完之后再跟別人的修改合并。寫好代碼想編譯下看看效果,首次編譯 QQ 的話耗時巨長無比(而且每次拉了新的子流后都要經歷一次),所以你又可以去喝杯水看看風景啥的,時間取決于機器性能,一般 1 小時至數(shù)小時不等。并且編譯過程中開發(fā)機基本處于卡死狀態(tài),根本沒法用,于是我通常都是吃飯前或者下班回家前干這種事情。

開發(fā)完成之后沒有 code review,況且要通過 CC 來看更改也極為麻煩。這時需要制作一個安裝包給測試人員,打安裝包這種事情一般交給編譯機,時間 20 分鐘左右,最快記錄貌似是 8 分鐘,當時負責優(yōu)化性能的同學還拿了獎啥的。測試過程中使用內部系統(tǒng) TAPD 進行 bug tracking,每個 bug 分高、中、低三個等級,QQ 這邊的 QA 對于質量要求很嚴格,需要同時通過功能測試和性能測試,通常要求是 0 個高單和中單(俗稱 0 bug 合入),少量低單是允許的。在經過嚴格的測試之后就可以合入主流了,使用 CC 的 deliver 功能來完成。但最好是先 rebase 主流(相當于 merge 主流,同樣跟 Git 沒有半毛錢關系),確保沒有問題之后再 deliver。至此你的開發(fā)任務已經完成,接下來就是等待版本發(fā)布。

QQ 內部有一套成熟的客戶端框架,代號 Hummer(蜂鳥),提供了諸如代碼解藕、公共庫、插件機制、國際化等功能。自研的皮膚引擎,代號 GF(GUI Foundation),用來實現(xiàn)各種界面效果。這兩塊是作為 QQ 開發(fā)者必須要掌握的,同時圍繞這兩塊還開發(fā)了一堆小工具,最常用的就是 LogViewer,用來查看日志文件,還有性能工具用來分析代碼性能。底層代碼和應用層代碼是分離的,因此有時在 debug 時會遇到部分代碼無法查看的情況。

最后配圖一張,原諒寫得有點羅嗦。話說自從來了知乎以后,就再也體會不到那種按下 F7 的快感了。

標簽: 騰訊 

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:淺談“最小化”和“關閉”的交互體驗

下一篇:90后成為移動互聯(lián)網開發(fā)者不能錯過的一塊肥肉