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

来源:https://www.cnblogs.com/shanyou/archive/2018/08/08/9405102.html
-Advertisement-
Play Games

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


今天是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之外還有大量的普通的程式員,他們更需要高效好用的開發平臺。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • c/c++求解圖的關鍵路徑 critical path 上圖表示一個工程,工程以V1為起始子工程,V9為終止子工程。 由圖可以看出,要開工V5工程,必須在完成工程V2和V3後才可以。 完成V2需要a1(6)個小時,完成V3需要a2(4)個小時。假設V2和V3同時開工,V3就會提前2個小時完工,但是這 ...
  • 撲克牌游戲 poker類 player類 playPoker類 運行截圖 還未完成比較功能,明天繼續完成 ...
  • 1. 學習計劃 1、訂單系統實現 2、訂單生成 3、Mycat資料庫分片 2. 訂單系統 2.1. 功能分析 1、在購物車頁面點擊“去結算”按鈕,跳轉到訂單確認頁面 a) 必須要求用戶登錄 b) 使用攔截器實現。 c) 如果用戶未登錄跳轉到登錄頁面。 d) 如果用戶已經登錄,放行。展示確認頁面。 e ...
  • (一)iterable對象和Iterator對象的區別 iterable對象(可迭代的對象):可以使用for迴圈,例如:字元串、列表 、字典 、集合等 Iterator對象(迭代器):除了可以用for迴圈外,還可以用next()不斷獲取下一個元素. __iter__() 和__next__()這2個 ...
  • 加QQ群:838197940免費領取! 【Python參考書籍】 入門讀物 1.《Python基礎教程》(Beginning Python From Novice to Professional) 2.《Python學習手冊》(Learning Python) 3.《Python編程》(Progra ...
  • 歷屆試題 核桃的數量 時間限制:1.0s 記憶體限制:256.0MB 時間限制:1.0s 記憶體限制:256.0MB 問題描述 小張是軟體項目經理,他帶領3個開發組。工期緊,今天都在加班呢。為鼓舞士氣,小張打算給每個組發一袋核桃(據傳言能補腦)。他的要求是: 1. 各組的核桃數量必須相同 2. 各組內必 ...
  • 上代碼,有問題歡迎留言指出。 執行完上述代碼後,會在代碼同目錄下創建一個保存職位信息的txt文件,jobDetails.txt。 這隻是獲取一頁招聘信息的代碼,後續會添加,如何獲取url和所有頁的招聘信息的代碼。 智聯招聘網站還是有一點點小坑的,就是不是所有的招聘職位詳情頁面都是使用智聯的官網格式, ...
  • 本文目錄 1. 摘要 2. Window下運行 3.linux下運行 4. 開發記錄 5. 總結 1.概要 寫《Asp.Net Core 2.0 項目實戰》系列斷斷續續已經很長時間了,期間很多朋友要求開放源碼,但是項目代碼一直有很多問題,就算勉強開源出來大家看起來也比較費勁,運行起來也看不到實際的效 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...