官术网_书友最值得收藏!

2.3 Visual Studio Code的優(yōu)勢(shì)

在Stack Overflow發(fā)布的2019年開發(fā)者調(diào)查中(如圖2-1所示),Visual Studio Code成為最受歡迎的開發(fā)工具。如果大家關(guān)注過(guò)Stack Overflow發(fā)布的2018年開發(fā)者調(diào)查,就會(huì)發(fā)現(xiàn)Visual Studio Code在那時(shí)就已經(jīng)成為最受歡迎的開發(fā)工具,只不過(guò)是以微弱的優(yōu)勢(shì)領(lǐng)先后面的開發(fā)工具。而到了2019年,Visual Studio Code已經(jīng)遙遙領(lǐng)先了。

圖2-1 Stack Overflow發(fā)布的2019開發(fā)者調(diào)查

那么,Visual Studio Code為什么能這么受歡迎?有哪些地方是開發(fā)者所喜愛的呢?讓我們從各個(gè)方面將其與當(dāng)前比較主流的編輯器Sublime、Atom和Vim比較一下,并逐一分析,看一看Visual Studio Code有哪些優(yōu)勢(shì)。

2.3.1 學(xué)習(xí)曲線

對(duì)于任何人,特別是新手來(lái)說(shuō),一個(gè)工具的學(xué)習(xí)曲線也會(huì)影響到它的受歡迎程度。還記得Stack Overflow上著名的問(wèn)題之一“How to exit the Vim editor?”嗎?截至本書完稿時(shí),它已經(jīng)有接近兩百萬(wàn)的訪問(wèn)量了。Visual Studio Code、Sublime和Atom在學(xué)習(xí)曲線上一定是遠(yuǎn)遠(yuǎn)比Vim要平緩的。同時(shí),Visual Studio Code的使用文檔相比于其他編輯器也是做得最好的,無(wú)論是“快速入門”還是每一個(gè)功能的使用,都在官網(wǎng)上寫得一清二楚、有條有理。Visual Studio Code官網(wǎng)還提供了PDF版的鍵盤快捷鍵參考表,以便讓開發(fā)者輕松上手。此外,考慮到一些開發(fā)者是從Vim、Sublime、IntelliJ或其他開發(fā)工具轉(zhuǎn)過(guò)來(lái)的,依舊習(xí)慣使用原來(lái)開發(fā)工具的鍵盤快捷鍵。Visual Studio Code提供了各種鍵盤映射的插件,讓你可以在Visual Studio Code中繼續(xù)使用不同開發(fā)工具的快捷鍵,而不用重新學(xué)習(xí)Visual Studio Code的快捷鍵。

2.3.2 用戶體驗(yàn)

Visual Studio Code提供了許多良好的開箱即用的用戶體驗(yàn)。與Vim、Sublime和Atom一樣,Visual Studio Code也提供了代碼編輯的體驗(yàn)。此外,Visual Studio Code在保持其輕量級(jí)代碼編輯器的前提下,還內(nèi)置了一些IDE中會(huì)有的重要功能,如下所示。

○ Terminal(終端):內(nèi)置的Terminal使得開發(fā)者可以直接在Visual Studio Code中快速地運(yùn)行腳本,而不需要在Visual Studio Code和系統(tǒng)的Terminal之間來(lái)回切換。

○ 調(diào)試器:可以直接在Visual Studio Code中調(diào)試代碼,其中的斷點(diǎn)、call stacks、交互式的debug console使得調(diào)試變得異常簡(jiǎn)單。

○ 版本控制:開箱即用的Git支持讓你可以方便地進(jìn)行文件更改比較,管理你的源代碼。

特別是對(duì)于前端開發(fā)者來(lái)說(shuō),Visual Studio Code對(duì)前端開發(fā)有著非常好的支持。除了對(duì)JavaScript的智能提示、重構(gòu)、調(diào)試等功能的支持,它對(duì)HTML、CSS、SCSS、Less和JSON這些前端技術(shù)棧也有著很棒的支持。

Visual Studio Code曾經(jīng)在某些方面的用戶體驗(yàn)上有不足之處。比如,曾經(jīng)Visual Studio Code的設(shè)置頁(yè)面的體驗(yàn)就沒(méi)有Atom好,Atom有著圖形化的配置界面,而Visual Studio Code是基于JSON文件的。Visual Studio Code為此聽取了用戶反饋,增加了圖形化的配置界面,也保留了基于JSON文件的配置方式,滿足了不同人群的使用習(xí)慣。

2.3.3 性能

天下武功,唯快不破。相信從IDE轉(zhuǎn)投Visual Studio Code的開發(fā)者一定對(duì)Visual Studio Code的性能非常滿意。同為基于Electron開發(fā)的產(chǎn)品,Visual Studio Code在性能的優(yōu)化上要比Atom領(lǐng)先許多。當(dāng)然,我們必須承認(rèn)的是,Visual Studio Code與Vim和Sublime相比在速度上還是有略微的差距。但是,我們依舊能看到Visual Studio Code在性能上的不斷優(yōu)化。從插件進(jìn)程與主進(jìn)程的隔離、插件的延遲加載,到Text Buffer的優(yōu)化、提升大文件的加載與編輯速度、減少內(nèi)存使用率,我們看到了Visual Studio Code的不斷進(jìn)步。

2.3.4 插件

Visual Studio Code有著豐富且規(guī)模快速增長(zhǎng)的插件生態(tài),如今,已經(jīng)有超過(guò)10000個(gè)插件。不僅可以在中心化的插件市場(chǎng)獲取插件,而且可以在Visual Studio Code編輯器中通過(guò)搜索,直接進(jìn)行安裝與管理。相比之下,Sublime只有不到5000個(gè)插件,而且在編輯器里不能很方便地搜索管理插件;Vim插件雖多,但因?yàn)闆](méi)有一個(gè)中心化的插件市場(chǎng),所以查找插件很麻煩;Atom有8000多個(gè)插件,比Visual Studio Code少一些,雖然在編輯器內(nèi)也可以查找插件,但Visual Studio Code的搜索和瀏覽功能做得要比Atom好。

此外,Visual Studio Code還推出了Extension Packs,方便開發(fā)者一鍵安裝多個(gè)插件。比較出色的Extension Pack有Java Extension Pack、PHP Extension Pack、Vue.js Extension Pack等,使得Visual Studio Code秒變IDE。

2.3.5 生態(tài)

Visual Studio Code不僅僅是一個(gè)代碼編輯器,它還有著強(qiáng)大的生態(tài)。Visual Studio Code把它的許多重要組件抽離出來(lái),使其成為大家都可以復(fù)用的開源產(chǎn)品,并與社區(qū)合作,把產(chǎn)品越做越好。相關(guān)協(xié)議及組件如下所示。

○ Language Server Protocol(LSP):它是編輯器/IDE與語(yǔ)言服務(wù)器之間的一種協(xié)議,可以讓不同的編輯器/IDE方便地支持各種編程語(yǔ)言的語(yǔ)言服務(wù)器,允許開發(fā)人員在最喜愛的工具中使用各種語(yǔ)言來(lái)編寫程序。Eclipse、Atom、Sublime Text、Emacs等主流編輯器/IDE都已經(jīng)支持了LSP。具體見參考資料[4]。

○ Debug Adapter Protocol(DAP):DAP與LSP的目的類似,DAP將編輯器/IDE與不同語(yǔ)言的debugger解耦,極大地方便了編輯器/IDE與其他Debugger的集成。Eclipse、Emacs、Vim等已經(jīng)支持了DAP。具體見參考資料[5]。

○ Monaco Editor:作為Visual Studio Code的核心組件,Monaco Editor在GitHub上已經(jīng)擁有了18000多個(gè)star。國(guó)內(nèi)比較有名的Cloud Studio和Gitee Web IDE等都使用了Monaco Editor。具體見參考資料[6]。

Visual Studio Code作為Visual Studio family的重要產(chǎn)品,與Visual Studio IDE一樣,也有兩大重要的功能,如下所示。

○ Visual Studio Live Share:極大地方便了協(xié)作編程,可以進(jìn)行實(shí)時(shí)共享代碼編輯、跟隨光標(biāo)、團(tuán)隊(duì)調(diào)試、分享本地服務(wù)器、共享終端等。

○ Visual Studio IntelliCode:通過(guò)AI賦能,根據(jù)上下文給出編程建議和智能提示,提高開發(fā)者的效率。

主站蜘蛛池模板: 广宗县| 玉环县| 无棣县| 禄丰县| 万安县| 南开区| 昂仁县| 顺平县| 沂水县| 盘山县| 大姚县| 嵊泗县| 中牟县| 博客| 秭归县| 北宁市| 乌拉特后旗| 南丹县| 溆浦县| 若尔盖县| 京山县| 龙泉市| 米泉市| 进贤县| 行唐县| 六盘水市| 吉水县| 黄龙县| 平顶山市| 将乐县| 永登县| 黄山市| 曲周县| 金沙县| 延吉市| 科尔| 鹤壁市| 定襄县| 大化| 青川县| 宜兰市|