1. 程式人生 > >回顧4180天在騰訊使用C#的歷程,開啟新的征途

回顧4180天在騰訊使用C#的歷程,開啟新的征途

今天是2018年8月8日,已經和騰訊解除勞動關係,我的公司正式開始運營,雖然還有很多事情需要理清,公司官網也沒有做,接下來什麼事情都需要自己去完成了,需要一步一個腳印去完善,開啟一個新的征途,我將在部落格和公眾號更新我的動態。

昨天是星期二,我在騰訊這家優秀的公司工作的第4180天,這天我離開了騰訊。這次的離開是為了下次更好的相遇,每一次相遇都是久別重逢,只有離別,才會相思,有了相思,才會有激情,有了激情,才有了我們下次一見如故的感覺。回首整個職業生涯,見證了騰訊從小到大、從大到強的整個過程,個人非常幸運大部分職業生涯都在騰訊度過,也把最好的一段時間奉獻給了騰訊這家偉大的公司。我也要說我為自己曾經為這家公司服務過而自豪,騰訊是那種你想為之工作的最優秀的公司。

.NET如日中天時加入騰訊

從大學畢業後,就開始接觸C#這門優秀的語言,從一個菜鳥逐步成長為一個熟練使用C#語言的程式設計師,我在微軟的技術社群裡比較獨具一格,我一直推廣的是開源技術,我的引路人是大名鼎鼎的Linux桌面Gnome的創始人米格爾Miguel de Icaza,早在2000年米格爾為了Gnome 桌面尋找程式設計模型,開始了Mono開源專案,我正是從Mono專案認識了C#,從此開始了Mono專案在中國的宣傳,平時喜歡在部落格上分享跟蹤Mono專案進展,同時也進入了.NET開發社群,在2006年成為微軟最有價值專家(MVP),那時騰訊也有幾位微軟最有價值專家,在社群活動中結識,2006年底通過toby的介紹,2007年2月26日在春節過後第一天入職騰訊。隨後幾年一直和toby 一起打造騰訊OA基礎服務,簡稱TOF,我和TOF一起度過了8年時光。

.NET的衰敗中打造TOF

我從參加工作以來就對C#有深度認同,它真是一門非常優秀的語言,從2007年加入公司到現在,我使用的主要開發語言都是C#,2007年的騰訊主要的開發語言是c/c++,C#。那時候大量的內網辦公,運營系統使用.net構建的,一直持續到2009年後,公司的大規模擴充套件,逐步加入了大量的其他語言,比如Python,PHP,Java。大量新系統逐步採用這些新語言構建,因為大家認為c#只能跑在windows上,我還是堅持使用C#持續優化TOF,因為我所認為的C#是完全可以跑在Linux等非windows系統上的,當年主要是通過Mono專案來完成這一目標的,但是Mono專案是個完全開源社群的專案,當年公司還沒有自己的tlinux,公司使用的Novell 的 Suse 企業版Linux,裡面預設自帶了Mono 執行環境的,公司的idc伺服器上可能還存量少許的這類系統,大家可以輸入命令mono瞧一瞧。Mono專案孕育了著名的遊戲引擎Unity3D,IEG的大量手遊都是基於Unity3D打造

2010年開始已經出現一種跡象是,新的業務系統都使用新的語言開發,使用C#語言的系統逐漸減少,舊的系統也不斷被重寫替代了C#,在公司的2013年度程式碼報告中http://code.oa.com/v2/report/2013 ,前十已經找不到C#的位置。

clip_image002

然而在2014年度的程式碼報告中http://tech.it168.com/a2015/0310/1709/000001709985.shtml ,C#突然之間前進到了第八位置,程式碼量增長了2.2倍,主角就是基於Mono平臺的Unity 遊戲開發,是手遊讓C# 爆發了,也就是在2014年我完成了TOF的第三個版本的重構,把原來的多個版本逐步統一為一個版本,程式碼量刪除了好幾萬行,效能提升到滿足當前公司規模的應用水平,到2016年我轉崗到FIT 時,TOF日均請求量已經超過5000W,公司有3000多個應用系統接入,服務於公司3W+員工,在轉崗交接工作時,我寫了一篇《C# 在騰訊的發展》對大家瞭解C#這個語言有個更好的瞭解。

clip_image004

迎接.NET Core新時代

2014年微軟公司開始轉型,鮑爾默退休,2014 年 2 月 4 日,微軟宣佈雲端計算部門副總裁薩蒂亞·納德拉 (Satya Nadella) 出任公司執行長,在他看來未來將是移動和雲時代,上任第一天的內部郵件中就明確的表示了自己的觀點,未來希望通過軟體驅動微軟這艘大船,在雲端計算時代幫助微軟取得更好的成績。2014年11月微軟宣佈了.NET開源,不是簡單的將原來綁定於windows的.NET 開放原始碼,而是針對雲原生應用重新設計的模組化,跨平臺的.NET, 經過1年多的打造,在2016年6月釋出了1.0版本。2016年9月我轉崗到了FIT,我在這裡和小夥伴們使用C#構建了幾個.NET Core系統,完全跑在tlinux上面,從此我很少使用.net, 我都是使用.NET Core, 公司全面轉向2B市場,年初有機會加入FIT金融雲團隊,耕耘保險行業,這半年時間裡我依然使用.NET Core構建了好幾個小系統。也就是這半年微軟的市值攀升到了8200億市值。在這3年時間裡,我業餘也運營了一個《dotnet跨平臺》微信公眾號,粉絲數3.9W,最近半年收到了更多積極的使用.NET Core的反饋,歡迎你來關注我的微信公眾號。.NET Core能幹的事情更多了,剛在2018年5月30日釋出的.NET Core 2.1,效能得到進一步的提升,接近C++效率。 yuke在2016年12月寫的這篇《用.net core 寫後端—— c++外的另一種選擇?》 ,有興趣的同學可以看看,現今主流的平臺都可以使用C#進行開發,俗稱擁有七龍珠,我去召喚神龍:

image

離開騰訊召喚神龍

我們已經完全進入雲時代,國外AWS,Azure ,GCloud等都對.NET Core有一流的支援,然而眾觀國內無論是Aliyun,還是TencentCloud對.NET Core的支援體驗都是完全不及格水平,這裡面有很大的改進空間,在我離開騰訊的最後時間,有幸參與改進騰訊雲 API 3.0的 .NET SDK, 昨天晚上同事zhiqiangfan已經把它開源釋出到了github:https://github.com/TencentCloud/tencentcloud-sdk-dotnet ,騰訊雲 3.0 API的C# 版本將是支援跨平臺的,可以完美運行於linux上,就像我在鵝廠所打造的系統都執行在tlinux上一樣,我希望看到這篇文章的同事,能夠認識到新的一代.NET Core是跨平臺的,不是繫結Windows的。在騰訊有幸目睹了騰訊開源自下往上的工程師文化,接著我在離開騰訊會繼續和騰訊開源合作, 第一個專案將是mig的tars: https://github.com/Tencent/Tars, 公司最好用的rpc+管理平臺,讓它支援.netcore, 絕對是個出門創業的好東西,和大家透露一下,目前我們已經組建了社群6人團隊在進行這項工作,6位分佈在北京,廣州,成都,深圳的.NET社群成員將在幾個月內完成Tars支援.netcore的工作,到時歡迎大家加入一起完善 。

離開騰訊的想法其實也很簡單,人生需要不停重新整理,這半年自從看了微軟CEO Satya寫的那本書《重新整理:重新發現商業與未來》,給我帶來很大的心靈的震撼,他提出自我重新整理的三個關鍵步驟:擁抱同理心,培養“無所不學”的求知慾,以及建立成長型思維。在此和兄弟姐妹分享這本書的兩個公式:

信任公式:
同理心 + 共同的價值觀 + 安全可靠 = 信任

技術透明、安全共治、保衛雲安全以及使用者至上,是微軟寫就的技術道德。在書中,納德拉列舉了包括斯諾登稜鏡門、2013年12月的毒品案、2015年12月加州恐怖襲擊等在內的例項,以及微軟與蘋果等對手因為使用者資料面臨安全威脅時並肩站在同一個立場,從他細膩的描述中,我們似乎感受到了作為一家巨頭公司CEO面臨的壓力及膽識、果敢

成長公式:
∑(教育+創新) x 科技使用強度 = 經濟增長

實現人人獲益的經濟增長,最近賣假貨的拼多多上市了,有文章分析這才是真正的中國,充斥著假貨,這就是現實,但我們更需要實現人人獲益的經濟增長,也就是在IT圈也是一樣,在BATJ之外還有大量的普通的程式設計師,他們更需要高效好用的開發平臺。