我在QQ郵箱的這四年

0 評論 18198 瀏覽 4 收藏 15 分鐘

恍惚間已經工作了四年有余,很幸運剛畢業就遇到一個很好的鍛煉機會,05年7月份剛成立的騰訊廣州研發中心,主要負責騰訊的郵箱業務,我是在06年2月份加入到這個團隊,也算是見證了QQ郵箱的整段發展經歷。有些記憶隔的太久,可能時間和細節上不太準確,盡量去回憶吧。

寫這個系列的文章也是對自己過去四年工作的一次回顧和總結,我會結合自己的經歷和感受來寫,視角不會太開闊,用平鋪直敘的方式吧,就像講故事,我是一個沒有太多故事 但卻喜歡講故事的人:)

也許大家都聽說過騰訊做郵箱的那段往事吧,創業團隊太自信了,覺得把郵箱放到客戶端上依賴QQ巨大的用戶 量自然就會成功,但是結果卻恰恰相反,糾正錯誤認識,在04年緊急做了QQ郵箱的web版,也就是QQMail2.0版本,這個版本明顯過于倉促,和網易 等其他郵箱應用相比,差距很大。騰訊在05年中旬收購了foxmail及其團隊,成立了廣州研發團隊,主要負責QQ郵箱的開發和運營。很明顯,公司非常重 視郵件這一塊,也基本承認了之前的判斷錯誤,所以打算下大力氣做好郵箱業務,這為之后QQ郵箱能夠取得優異成績奠定了政策基調。

在 計算機軟件領域,一款成功的產品背后一般都會有一個明星人物,QQ郵箱也不例外。QQ郵箱的這個關鍵人物大家應該也都知道,他就是foxmail的作者張 小龍。09年賴勇浩同學在一次技術交流中談過他心目中的幾個國內頂尖程序員和其成功的軟件作品,有求伯君和wps,有鮑岳橋和ucdos3,有王江民和 kv100,有梁肇新和超級解霸3,有張小龍和foxmail,有侯延堂和flashget等等。小龍被認為是國內第二代程序員中的領軍人物,他曾經是國 內頂尖的程序員,然而他在QQ郵箱的整個發展過程中不是以技術人員的身份在指導,如果要用一個最合適的身份來形容他,我覺得是產品經理。小龍曾經在內部發 表過一篇文章,這篇文章講述了他對互聯網團隊管理的一些觀點,他認為互聯網團隊中的管理不是管人,而是管理產品體驗,以產品體驗為核心,產品設計和開發人 員與產品共同提升,共同進步。小龍之于QQ郵箱的影響正如喬布斯之于蘋果的影響。

QQ郵箱3.0版應該是廣研自主研發的第一款郵 箱產品,2.3版是從總部繼承過來的,3.0版的后臺很多代碼也是從2.3版繼承過來的。3.0版的UI有點像hotmail和outlook的綜合體, 思路很明顯,把郵件客戶端做到web上面,做一個富客戶端的郵件應用服務。當時國內的郵件應用第一梯隊是網易和雅虎中國(中國雅虎是之后的事情),第二梯 隊的是新浪、搜狐、tom在線、21cn等門戶,第三梯隊是一些獨立的郵件服務商。當時大家經常上艾瑞網看排名,QQ郵箱當時排名在12左右,還進入不了 前三梯隊,市占率低到可以忽略。當時的目標是在一兩年內進入第二梯隊,我想,如果當時確定目標是超越網易成為國內第一,估計是沒人相信的,包括我們自己。

3.0 版是廣研的處女作,投入了全部的人力物力,采用了當時業界最先進的技術方案和最好的UI設計,并且創新的采用outlook的三欄結構,很像郵件客戶端, 這是一次軟件服務化的嘗試。

我是06年2月份加入廣研,當時3.0已經渡過了最繁忙的開發階段,進入了小范圍的公測階段,用戶可 以在2.3版和3.0版之間切換。3.0版的集中開發大概是半年多時間,05年中旬廣研招兵買馬的時候,大部分人沒有郵箱產品的相關開發經驗,當時是在摸 索中前進。然而,當時的團隊卻采用了業界最先進的ajax技術架構,當時的javascript代碼有很重的面向對象的味道,用傳統的軟件工程思想構建了 整個web框架,從軟件的開發流程來說,這并沒有什么問題,但是產品卻有很大的問題出現了–慢,不是一般的慢,當時除了較快的電信網用戶可以登陸進郵箱 之外,其他的用戶基本上都被卡在登陸上。06年的大部分時間,整個團隊都在解決速度慢的問題,嘗試了很多方法,把js容量壓縮掉了一半,js混淆之后又壓 縮了很多,js文件分開為多個,但始終沒有根本的轉變,速度的提升仍然不能被用戶接受?,F在回過頭分析這個問題,我覺得物理上的壓縮和分割js文件之所以 解決不了問題是因為問題的根本在于js的邏輯架構上,當時的js有明顯的基類和繼承類結構體系,這種結構并不適合物理上的分割,即使分割開,渲染消耗的時 間是節省不下來的。

3.0版的后臺基本上是繼承的代碼和開源代碼的綜合。最重要的郵件投遞模塊采用的是當時最好的投遞引擎 postfix,web端采用的是apache。郵件存儲是簡單的單文件存儲方式,用戶數據存儲也是比較簡單的,帳號和郵件列表是合并存儲在一起的。這個 架構對于支撐當時的用戶規模是足夠的。

06年之前廣研在做QQ郵箱開發和運營的人數是比較少的,所以06年吸納了不少的畢業生, 我就是第一批廣研接收畢業生中的一員,當時3.0版的主要開發人員集中在兩個小組:QQMail小組和系統架構組,從名字上看,應該是QQMail小組負 責產品層面的開發,系統架構組負責后臺架構的研究和開發,不過我當時感覺兩個組差別并不大,都是在做產品開發,都同時做前臺后臺,可能是人手緊張的緣故 吧。QQMail小組除了做產品開發之外,還負責產品的運營工作,人數上稍微多一些。我加入的是QQMail小組,最初是以實習生身份參與到3.0的開發 中,工作任務比較雜,寫一些cgi,做一些內部系統和統計的工作,其余的大部分時間是在讀代碼,也就是上面提到的那些js代碼,后臺代碼和cgi的代碼。 這近三個月時間是我有史以來精力最旺盛的一個階段了,把所有的代碼梳理了一次,寫了好幾本筆記,現在回憶起來覺得真是太不可思議了。

QQMail 小組當時的組長是ted,系統架構組的組長是harvey,兩位老大對我的影響都很大,我后來分別在兩位老大麾下做了兩年,從兩位老大身上學到很多東西, 他們也給了我很多鍛煉的機會。

ted老大當時主要負責QQ郵箱的產品開發運營方面的管理,在我進組之后,當時的3.0已經過了集 中開發階段,開始進入優化階段,對運營質量提出了更高的要求,當時整個QQ郵箱的運營只有一個粗糙的數據統計系統和一個nagios系統,數據的收集和統 計的方法比較簡單,cgi寫日志然后收集起來之后再運用shell統計入庫,甚至數據的頁面表現也是shell做的。ted安排aoger為我的導師,我 跟著aoger邊熟悉系統邊做一些數據統計方面的嘗試,偶爾也會寫一些產品cgi。aoger是一位相當有耐心的導師,尤其是面對我這種打破沙鍋問到底類 型的學生,aoger在最初給了我最多的幫助,沒有aoger的幫助,我不太可能在3個月理清整個QQ郵箱的架構。aoger解答不了的問題,他會推薦更 合適的同事給我,不過我比較取巧,遇到這種情況一般就去問ted老大了:)也正是在這些和ted老大的問答過程中,增加了彼此的了解,這為以后ted能夠 不失時機的給我最恰當的嘗試機會奠定了基礎,不過最重要的還是ted的信任。

跟著aoger先后做了運營監控系統和一些相關的統 計系統之后,ted給了我第一個機會獨立完成一個系統,那就是廣研的業務數據系統,這個系統包括數據的收集、整理分析、報表展示和數據波動報警等功能,這 個系統至今仍然在使用,后臺架構也基本沒有什么改變,我在做這個系統的過程中,熟練掌握了兩門新的語言:shell和python,熟練的程度足夠我運用 任何一門語言做整一個系統。在shell編程方面,很感謝felix的幫助,在python方面,很感謝vincent的推薦和幫助。兩位都是領域內的高 手,對編程語言的運用駕輕就熟。shell幫我在數據收集的自動化方面做到爐火純青,收集、糾錯和報警一條龍,而且代碼相當干凈,值得反復閱讀(請允許我 陶醉一下);python是一門我非常喜歡的編程語言,讓我癡迷了2年,甚至在去年還閱讀了一些剖析python源碼的書籍,我主要用python做內部 系統的表現網站,報表、圖標、趨勢圖無所不能,而我最滿意的是用python設計實現了一個輕量的模板語言,這個語言幫助我通過簡單的配置就可以做出一個 統計頁面的表現和數據提取,非常方便,現在還有同事在使用這個模板語言,代碼也是相當干凈(我又陶醉了)。

一個合格的程序員不會 滿足于做重復的事情,雖然后續接了不少的內部系統開發,本來都是可以簡單的拷貝前一個系統修改一下就了事的,不過我把每一個系統都做的不一樣,每個系統都 要有至少一個新亮點,ted后來覺得我有點過于埋醉于技術疏于組織方面的鍛煉是有證據的。不過ted還是很信任我,陸續又讓我參與到產品層面的開發中,這 次我又幾乎獨立完成了QQ郵箱的自助服務系統,包括faq及其查詢、最近登陸記錄查詢、最近收發信查詢和最近刪信查詢等若干輔助用戶查詢的功能。這是我首 次做后臺服務,后來這個服務相當穩定,其后臺就成為了發信狀態查詢的后臺,現在仍然在運轉著。也正是由于這個發信狀態查詢服務的成績,小龍把我調到了架構 組參與到閱讀空間的開發中去,雖然那個服務是我自己認為做的最差的一個服務,但是卻有很大的意義。這也驗證了互聯網開發是結果驅動而非過程驅動的一個實 證。

雖然06年的我得到了很多的鍛煉的機會,做出了一些成績,但是QQ郵箱這個時候仍然徘徊在速度和功能的博弈中,當時公司內部 在進行hummer計劃,廣研這邊除了QQ郵箱之外,要另外做一個hummermail,架構組為此把后臺的架構進行了一次徹底的重構,把用戶數據存儲模 塊做成了一個通用性更好的存儲服務,事實證明,這個存儲服務成為了廣研最核心的一個服務,支撐著絕大多數體驗的數據存儲;把帳號信息獨立出來做成一個新的 帳號系統;由于新郵件提醒的重要性,特別為郵件提醒做了一套后臺,實現實時穩定的郵件提醒功能。這次重構雖然沒能挽救3.0的失敗和hummermail 的流產(后話了),但是卻成為全新版本QQ郵箱的最核心后臺,相當了不起的一次重構,足以載入史冊。

至于3.0版的失敗,那是一 個更驚心動魄的歷程,鳳凰涅盤,浴火重生。

來源:249553920.qzone.qq.com/blog/

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!