您當前的位置:首頁 > 舞蹈

那些年,我們一起追的 VS Code

作者:由 韓駿 發表于 舞蹈時間:2019-02-24

2015年,那一年,我25歲。Visual Studio 還是微軟最重要的開發工具。開發者們還在期待 VS 2015 的到來。

那年,組裡的一個前端專案用的是 AngularJS,組裡購買了 WebStorm 的 licence,大家紛紛表示很好用。

那一年,那些年。

我叫韓駿,本科同學們都叫我韓總。我高中唸的是北虹高階中學,本科唸的是上海交通大學。2013年,正式入職微軟上海。故事,由此開始。

故事的另一位主要主角,是現居西雅圖、VS Code 團隊的核心成員呂老師 @rebornix。早在2012年在微軟暑期實習時,我們就相識了。那時,我們的交集並不多。有幸的是,我們都拿到了微軟正式員工的 Offer,也不再糾結於讀研還是工作,都接受了微軟的 Offer。2013年7月8日, 我和呂老師還有其他幾位小夥伴一起入職了。剛接觸呂老師時,就覺他特別有靈性,往往會有著超越尋常人的思路與見解。入職後,我們驚奇地發現,我們的住所是如此之近,只有五分鐘的步行距離。這,也許是天意。由此,我們開始了長達三年的微軟10號班車之旅。我已經記不清10號班車換了多少的班車師傅,但不變的是,每天來回三小時的路程上,我們都在。無數個三小時,我們都不會孤獨,一路上,從 C#, 。NET, AugularJS 再到後來的 TypeScript, VS Code,我們無不討論。(嗯,在此,要對所有10號班車的同事說聲抱歉,打擾到你們睡覺啦~)

2015年,我們當時有個專案是一個 CMS 系統,而 www。visualstudio。com 的內容也放在了這個系統上管理。某一天,我不經意間,在測試網站上突然發現了有個 “Visual Studio Code” 的頁面,描述裡赫然寫著它是一個跨平臺的編輯器。當時已經臨近微軟的最重要的開發者大會 —— Build 大會,我第一反應就是,這是一個重量級產品!我馬上喊來了呂老師一起看。呂老師仔細地看著那個頁面,不等我們交流,從他看網頁的那堅定的眼神中,我就能知道,我們想的是一樣的,這將會是一個 Big News。果不其然,在不久後的2015年4月29日的 Build 大會上,微軟宣佈了 Visual Studio Code 第一個預覽版本,眾多開發者為之振奮,也有很多類似“VS 支援跨平臺了”的標題黨出現。我當然也是第一時間下載下來體驗下,第一印象是 VS Code 的速度是如此之快,而且對 Git 有著很好的支援。從那時起,我的主力編輯器就逐漸轉向了 VS Code。

在半年後的2015年11月18日,VS Code 在 GitHub 上以 MIT License 開源,同時宣佈將支援擴充套件功能。在10號班車上,呂老師就和我談到了 VS Code 的發展前途,以及有給 VS Code 寫外掛的打算。到了16年春節後,呂老師在班車上和我說,他正在寫 Ruby 的外掛,詳細說了說 VS Code 的外掛機制。當時,VS Code 的外掛很少,很多語言的外掛都是缺失的,可謂是一個真正的藍海。大概過了一週,呂老師釋出了他的 Ruby 外掛。我不禁感嘆,呂老師的效率之高,可以算是最早一批抓住 VS Code 藍海機會的大佬之一了。也正是憑藉著這 Ruby 外掛作為敲門磚,呂老師在那年成功入職高手雲集的 VS Code 團隊,開啟人生贏家之路。其實關於 Ruby 外掛還有個小故事,當時除了呂老師,還有位老外也正在寫 Ruby 外掛。那時,那位老外被一個技術難點卡住了,還沒等他踩完坑,沒想到呂老師以迅雷不及掩耳盜鈴之勢就釋出了 Ruby 外掛。後來,呂老師也說服了那位老外一起來寫這個已經發布的外掛,避免重複工作。如果呂老師的 Ruby 外掛再晚釋出幾天,也許,就是另一種結果了。

到了2016年6月份,呂老師已經開始各種準備去美帝了。組裡的另一位大佬同事 @毛華超 也釋出了 REST Client 外掛,廣受好評。那一月,也有幸親眼見到了 Erich Gamma (VS Code 的老大,《設計模式》作者之一,JUnit 建立者之一 )。

那些年,我們一起追的 VS Code

2016年,Erich Gamma 來到微軟上海

我知道,我該行動了。這是一片即將變為紅海的藍海。以 Fail Fast 為指導思想,我在短短一個月時間裡,接連發布了四款外掛。沒想到,四個外掛都廣受使用者的喜歡,特別是 Code Runner,下載量從1萬,10萬,一直到現在的500萬,是我20多個外掛中,使用者最喜歡的外掛之一。

2016年下半年,呂老師遠赴美帝。而10號班車,只剩我“一個人”了。但是,我追逐 VS Code 的步伐並沒有停止。正巧那時,部門開始做 IoT 的 Developer Tooling。我馬上想到的就是做一個 VS Code 的外掛。可惜,在那時,做一個 VS Code 的 IoT 外掛並沒有被列為一個優先專案。幸而,感謝微軟的開放態度,我利用自己的個人時間,開發了 Azure IoT Toolkit,由於反響良好,在一年後,我把外掛貢獻出來,Azure IoT Toolkit 被升級成為微軟的官方外掛。

到了2017年,IoT 外掛被正式提上議程。組裡成立了專門的團隊來開發 Arduino 外掛。雖然我沒有實際參與外掛的開發中,但在整個過程中,我也提出了很多建議,在兩次組內的 BugBash 中勇奪冠軍~ 外掛釋出後,也受到了 Arduino 社群的很多好評。由此,我們部門也開始了 VS Code 的旅程,IoT、Java 以及 Ansible、Terraform 等,部門開發或者合作開發的外掛超過了20個。

到了 2018 年,我有幸在微軟技術暨生態大會上做了個演講,主題是“從零開始開發一款屬於你的 Visual Studio Code 外掛”,把外掛開發的經驗帶給更多的開發者朋友們。

2019年,我對 VS Code 外掛開發有了更深入的思考。單靠我一個人寫外掛又能寫多少呢,新的外掛好寫,但是成本最大的其實是外掛維護,現在20個外掛維護起來已經是很累了~ 所以,授人以魚不如授人以漁,我開通了“玩轉VS Code”微信公眾號以及知乎專欄,就是希望把我們的 VS Code 的一些經驗分享給更多的人,也希望有更多志同道合的朋友,一起來玩轉 VS Code。

那些年,我們一起追的 VS Code

“玩轉VS Code”微信公眾號

不知道這些年來我們對 VS Code 的追逐到底產生了多大的影響。但是,至少,我們看到了一些變化。曾經,人們會把 VS Code 當成 VS,以為 VS 跨平臺了。如今,會有95後的童鞋把 VS 以為是 VS Code,原來除了 VS Code,居然還有個 VS ? 曾經,新的專案,我們會問,為什麼要做個 VS Code 的外掛?如今,新的專案,我們會問,為什麼不做個 VS Code 的外掛?

微軟的10號班車還在,當年一起入職的小夥伴,很多卻去了不同的地方,“上海”、蘇州、無錫、西雅圖。我似乎依稀還記得,某個早晨的班車上,我和呂老師為了一個專案中的技術問題吵到面紅耳赤,而到了中午依舊是80分的最佳拍檔。某天下班的路上,我們為了一個專案中的一個難以重現的bug,在班車上開啟筆記本一起來除錯。某個晚上,我為了一個 Code Runner 的一個 Bug,奮戰到凌晨兩點。還有,那時,在班車上,我們經常會拿著 Surface RT,看Channel 9,看 Design Spec,回郵件。

微軟的10號班車還在,我已經記不清換了多少的班車師傅,卻依然記得那時對技術的執著與熱情。

不忘初心,莫失初衷。不言放棄,追逐所愛。

標簽: 外掛  vs  code  微軟  班車