五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

用了五年 VS Code ,我決定換成 JetBrains…

2022-03-14 16:03 作者:IDEA精選教程  | 我要投稿

在編程中,VS Code 作為我的主 IDE 長(zhǎng)達(dá) 5 年之久。在這個(gè)時(shí)間點(diǎn)上我決定換掉它,這可能會(huì)令人無(wú)法理解。本文我將和大家分享我做這個(gè)決定的原因。

背景

愿意的話你也可以說(shuō)我是瘋子。你可能會(huì)認(rèn)為,一個(gè)用了 VS Code 長(zhǎng)達(dá) 5 年的人,一定是瘋了才會(huì)想在此時(shí)換掉它。的確,在我接觸 JetBrains 生態(tài)之前,也是這么認(rèn)為的。我甚至愿用我的性命證明 VS Code 是目前市場(chǎng)上最好的 IDE,它就如同 PC 行業(yè)中的蘋(píng)果 M1 芯片電腦一樣。但請(qǐng)?jiān)试S我先介紹下事情的背景。

我目前在 Blankly 工作,該公司主提供對(duì)沖基金云服務(wù)。在我們提供的云服務(wù)上,人們只需要幾分鐘即可創(chuàng)建自己的交易算法。我的一個(gè)同事 Emerson,他是 JetBrains 生態(tài)的鐵桿粉絲。在一次日站會(huì)上,他為了說(shuō)服我們?nèi)ピ囈幌?JetBrains 的生態(tài),甚至不惜延長(zhǎng)了會(huì)議時(shí)間。我為了讓會(huì)議對(duì)于這件事的討論早點(diǎn)結(jié)束(這樣站立會(huì)也能早點(diǎn)結(jié)束),我勉強(qiáng)同意了。然而誰(shuí)承想,現(xiàn)在我居然在這里寫(xiě)了一篇關(guān)于是什么最終說(shuō)服我愿意放棄一直陪伴我的 IDE 的文章。

因此,如果你正好處在糾結(jié)選擇用什么 IDE 且完全沒(méi)有考慮 JetBrains 想法,或你對(duì)我為什么放棄 VS Code 感興趣的話,那么,這篇文章非常適合你繼續(xù)讀完。

本文是根據(jù)我使用 VS Code 和 JetBrains 的一些切身體會(huì),將從 5 個(gè)方面對(duì)它們進(jìn)行的對(duì)比分析。并且闡述了一些使用場(chǎng)景中 JetBrains 優(yōu)勢(shì)明顯的原因。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

代碼檢查和重構(gòu)

VS Code:快、簡(jiǎn)單、支撐多語(yǔ)言

首先,任何編程語(yǔ)言在 VS Code 中都可以簡(jiǎn)單且快速地啟動(dòng)和運(yùn)行,所以大家也會(huì)稱它為“編輯器”。因此,VS Code 對(duì)于像我這樣的全棧工程師來(lái)說(shuō)是最佳選擇。無(wú)論你是需要頻繁在 Python 和 JavaScript 之間切換,還是需要增加一個(gè)基于 NextJS 開(kāi)發(fā)的 React App,還是需要在 Ralis 系統(tǒng)上配置 Ruby 環(huán)境,這些能力 VS Code 都能很好地支持,并為這些開(kāi)發(fā)語(yǔ)言提供了包括 lingting 在內(nèi)的一系列開(kāi)箱即用的功能。即使碰到某個(gè)功能沒(méi)有,那也只需要在其插件市場(chǎng)上搜索一個(gè),找一個(gè)具備此功能的插件進(jìn)行安裝即可。

其次,由于有了諸如 Github Copilot,AI-based linting,auto imports 等一系列插件的支撐,VS Code 具備了強(qiáng)大的 linting 能力。在 VS Code 中,無(wú)論你什么時(shí)候想要什么功能,配置起來(lái)都非常容易。很多時(shí)候,只是需要敲個(gè)結(jié)束符,VS Code 就會(huì)將你想要的內(nèi)容提示出來(lái)。不過(guò)有些時(shí)候,人們也會(huì)因?yàn)檫@種 linting 能力的失效而崩潰。

實(shí)際上,我時(shí)常陷入試圖弄清楚為什么一個(gè)標(biāo)準(zhǔn)的 linting 不能工作的困境中。不管是由于我使用 Anaconda 安裝的多 python 環(huán)境導(dǎo)致,還是由于少了安裝包導(dǎo)致,但很多時(shí)候我都無(wú)法直接得到答案。此外,VS Code 針對(duì) JavaScript 語(yǔ)言的 linting 能力也非常強(qiáng)大,不過(guò)它不會(huì)對(duì) JavaScript 進(jìn)行深入的類型檢查,慶幸的是,我們可以通過(guò) TypeScript 來(lái)解決這個(gè)問(wèn)題。

如圖所示,由于我忘記切換 VS Code 中的 Python 環(huán)境,所以即使我本地已經(jīng)通過(guò) pip 安裝了相關(guān)依賴包,但 VS Code 的 linting 功能依然提示包未找到。

最后,作為一個(gè)編輯器,VS Code 在代碼重構(gòu)上表現(xiàn)的確非常出色。它在諸如變量重命名、文件移動(dòng)和引用自動(dòng)修改等基礎(chǔ)的重構(gòu)功能上表現(xiàn)得非常棒。但在諸如函數(shù)移動(dòng)、參數(shù)重命名、代碼抽取等更高級(jí)別的重構(gòu)功能方面,它就顯得有些能力不夠了。不過(guò),幸運(yùn)的是,僅僅一些基礎(chǔ)的重構(gòu)功能就足以滿足我們?nèi)粘4蟛糠种貥?gòu)需求。在我使用 VS Code 的五年中,它滿足了我遇到的大多數(shù)重構(gòu)場(chǎng)景。

JetBrains:標(biāo)準(zhǔn)、專業(yè)、支撐強(qiáng)大

首先,JetBrains 是一個(gè)包含了很多不合理初始設(shè)置的強(qiáng)大 IDE。在我第一次接觸它的時(shí)候,為了讓代碼顯示的比較優(yōu)雅,不得不在設(shè)置上大費(fèi)周章。不過(guò),在兩個(gè)為不同使用場(chǎng)景設(shè)計(jì)的 IDE 之間做切換,付出一些學(xué)習(xí)的時(shí)間成本是不可避免的。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

如果我的一個(gè) POST 請(qǐng)求突然出問(wèn)題了,我就得打開(kāi) PyCharm,看看是不是我后端 API 服務(wù)出問(wèn)題 了;如果在推薦類項(xiàng)目中,我突然對(duì)最佳推薦算法有了新的優(yōu)化思路,我就需要打開(kāi) CLion。不過(guò),由于有了智能識(shí)別,在打開(kāi)不同 IDE 的時(shí)候,我只需要花點(diǎn)時(shí)間練習(xí)下將 code . 切換到諸如 webstorm . 和 pycharm. 等其他腳本。

其次,JetBrains 的引擎性能強(qiáng)大。當(dāng)我將 IDE 都替換為 JetBrains 之后,它強(qiáng)大的引擎性能讓我印象深刻。當(dāng)我在編輯器中看到一些紅線警告的時(shí)候,我只需要使用快捷鍵 comman+p 將當(dāng)前窗口重新加載一次,這些紅線警告就會(huì)消失,或者會(huì)給出一些有用的提示信息。這種簡(jiǎn)單和快速響應(yīng)的代碼檢查,讓我在編程時(shí)心情愉快。

如上圖,只需要一個(gè)快捷鍵,就能看到所有引用的地方。

最后,在重構(gòu)能力上,JetBrains 功能強(qiáng)大,這也是它真正吸引我的地方。就在上周,在為公司平臺(tái)構(gòu)建最后的內(nèi)測(cè)版本期間,為了讓組件未來(lái)具備更強(qiáng)的擴(kuò)展性,我重構(gòu)和新增了一些組件。期間,我大概移動(dòng)了 200 個(gè)組件,在項(xiàng)目編譯的時(shí)候,沒(méi)有一次編譯異常是由引用錯(cuò)誤、非法或未定義組件引起的。

然后,在 VS Code 中,我在一個(gè)數(shù)據(jù)結(jié)構(gòu)類的項(xiàng)目中,僅僅重新組織了兩個(gè)文件就破壞了整個(gè) cpp 代碼。為此,我不得不手動(dòng)修正一些組件導(dǎo)入和函數(shù)引用才能使項(xiàng)目正常運(yùn)行。另外,JetBrains 為了確保我們能有足夠多的重構(gòu)工具,它還提供了諸如安全刪除、全局重命名等多種外部工具。

通過(guò) JetBrains 可以很清楚的看到將被重構(gòu)或重命名的變量的的全部調(diào)用以及上下文情況圖

JetBrains 生態(tài) IDE 提供的閱讀幫助功能

能力對(duì)比

總的來(lái)說(shuō),我認(rèn)為在代碼檢查和代碼重構(gòu)上,VS Code 和 JetBrains 兩者能力接近。兩者都是通過(guò)諸如自動(dòng)代碼檢查、代碼格式化、主題定制等功能,幫助人們更好地進(jìn)行代碼調(diào)試和顯示。不過(guò),JetBrains 具備優(yōu)秀的 linting 引擎和無(wú)副作用的重構(gòu)能力,因此,如果代碼分解和重構(gòu)對(duì)你和你的工作流程很重要,那么,我推薦你選擇 JetBrains。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

調(diào)試

VS Code:幾乎可以調(diào)試一切

VS Code 超強(qiáng)的調(diào)試能力,歸功于其強(qiáng)大的插件支撐。你每次點(diǎn)擊 VS Code 左邊的運(yùn)行按鈕,VS Code 都會(huì)生成一個(gè).vscode 的文件夾,此文件中存放了一個(gè) settings.json 文件,這個(gè)文件包含了調(diào)試相關(guān)的全部配置。

對(duì)于諸如 Python、JavaScript 等大多數(shù)語(yǔ)言來(lái)說(shuō),使用 VS Code 作為其調(diào)試工具是非常方便的。甚至,如果你的環(huán)境配置正確無(wú)誤的話,通過(guò)直接點(diǎn)擊調(diào)試按鈕來(lái)進(jìn)行調(diào)試會(huì)更加便捷。此外,即使是通過(guò)修改 settings.json 文件中的配置來(lái)改變你當(dāng)前的調(diào)試內(nèi)容也是非常簡(jiǎn)單的。

不過(guò),如果你用了特定的構(gòu)建方式或特定平臺(tái)語(yǔ)言(如:C/C++ 語(yǔ)言),由于需要設(shè)置 gcc 和 clang,因而會(huì)大幅增加在 VS Code 中進(jìn)行調(diào)試的難度和復(fù)雜度,同時(shí)設(shè)置這類文件的調(diào)試配置也會(huì)比較費(fèi)時(shí)費(fèi)力。為了減少這種時(shí)間的投入,我嘗試將其他項(xiàng)目的 setting.json 文件拷貝到當(dāng)前項(xiàng)目中,但是效果不理想,我花了很多天的調(diào)整,才使當(dāng)前的項(xiàng)目正常運(yùn)行。

在我的大學(xué)(密歇根大學(xué)安娜堡分校),為了減少大家在調(diào)試配置上耗費(fèi)的精力,他們就維護(hù)了一個(gè)通用的 settings.json 文件提供給所有人使用。但是即使這樣,人們還是不得不花時(shí)間去調(diào)整 settings.json 文件。

上圖顯示了一個(gè)為了在 MacOS 上進(jìn)行 C/C++ 程序調(diào)試所需要的最簡(jiǎn)配置

在實(shí)際進(jìn)行調(diào)試的過(guò)程中,VS Code 在調(diào)試控制臺(tái)中可以很好地進(jìn)行調(diào)試斷點(diǎn)設(shè)置、識(shí)別變量和添加變量觀察者。不過(guò),如果這些功能可以直接在代碼面板而不是側(cè)面板上進(jìn)行設(shè)置,那就好更好了。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

慶幸的是,插件和多語(yǔ)言支持是 VS Code 的最大優(yōu)勢(shì),這使得人們可以在幾分鐘,甚至幾秒鐘內(nèi)就完成代碼調(diào)試的設(shè)置工作。對(duì)一些簡(jiǎn)單的調(diào)試場(chǎng)景,VS Code 的調(diào)試能力表現(xiàn)得非常棒。然而當(dāng)需要調(diào)試特殊語(yǔ)言的時(shí)候,VS Code 的調(diào)試能力往往會(huì)難以勝任。同時(shí),我還發(fā)現(xiàn)當(dāng)程序需要用到更大的堆內(nèi)存的時(shí)候,VS Code 的調(diào)試器會(huì)一直卡到崩潰。

JetBrains:一個(gè)調(diào)試怪物

相對(duì)于 VS Code,JetBrains 在調(diào)試方面功能更強(qiáng)。由于 JetBrains 所有系列的 IDE 都是基于配置運(yùn)行的,因此你可以通過(guò)點(diǎn)擊調(diào)試按鈕開(kāi)始任何一次程序調(diào)試。如果想設(shè)置全局的調(diào)試斷點(diǎn),只需要在編輯器的行號(hào)處按下空格鍵即可,此功能極大得提高了程序調(diào)試的體驗(yàn)。

此外,JetBrains 系列的 IDE 在整個(gè)調(diào)試過(guò)程中還有很多其他的功能亮點(diǎn),例如:當(dāng)進(jìn)入調(diào)試環(huán)節(jié),作用域內(nèi)的所有變量的定義,對(duì)于定義者來(lái)說(shuō)都是可見(jiàn)的。這讓我們可以很方面的觀察當(dāng)前變量值的變化情況。幾天前用 Pycharm 調(diào)試程序的過(guò)程令我印象深刻。當(dāng)我在 Pycharm 中運(yùn)行調(diào)試并試圖查看數(shù)據(jù)幀的值時(shí),只要點(diǎn)擊數(shù)據(jù)幀變量并按下 view 作為數(shù)據(jù)幀,Pycharm 就會(huì)在 SciView 中打開(kāi)數(shù)據(jù)幀,并顯示所有數(shù)據(jù)幀值和列標(biāo)題:

上圖顯示的是運(yùn)行調(diào)試且變量值變化的監(jiān)控

如上面截圖所示,底部的窗口中顯示了作用域內(nèi)的全部值。history_and_returns 的下拉菜單中顯示了字典對(duì)象的所有屬性值以及嵌套在該字典對(duì)象中的數(shù)據(jù)幀。右邊的面板中,則和 SciView 一樣,顯示了已經(jīng)嵌套在字典中的數(shù)據(jù)幀。在不設(shè)置任何打印語(yǔ)句或堆棧跟蹤的情況下,就能如此深入了解代碼,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)是非常有用的。試想一下,當(dāng)所有變量的賦值都被編輯器顯示在其旁邊時(shí),我們可以很容易找到循環(huán)中的邏輯錯(cuò)誤、修復(fù)因?yàn)樗饕龑?dǎo)致的故障甚至做一些更加深入的邏輯推理。

與其他 IDE 的調(diào)試器一樣,JetBrains 調(diào)試器同樣提供了諸如下一行、進(jìn)入某個(gè)函數(shù)等步進(jìn)的調(diào)試功能。另外,JetBrains 的 Run to Cursor 是一個(gè)非常好用的功能,它允許人們通過(guò)放置鼠標(biāo),就可以如同設(shè)置斷點(diǎn)一樣,起到調(diào)試斷點(diǎn)的效果。這種可以隨時(shí)隨地設(shè)置斷點(diǎn)且立即生效的功能,完全我調(diào)試代碼的方式并且大幅加速了我編程的速度。

能力對(duì)比

程序調(diào)試是開(kāi)發(fā)人員每天最常做的事情之一。因此我認(rèn)為,當(dāng)開(kāi)發(fā)人員選擇 IDE 的時(shí)候,IDE 是否擁有一個(gè)好的調(diào)試器是必須考慮的因素。VS Code 和 JetBrains 都提供了非??煽康恼{(diào)試器,但是我必須說(shuō)在這方面 JetBrains 比 VS Code 略勝一籌。因?yàn)?,JetBrains 可以直接在變量聲明的邊上直接顯示變量值,這使得跟蹤大量變量的時(shí)候會(huì)比較容易管理。

此外,JetBrains 的調(diào)試器更強(qiáng)大、更穩(wěn)定,它不像 VS Code 調(diào)試器那樣需要做復(fù)雜的設(shè)置。因此,結(jié)合這些因素,JetBrains 的調(diào)試能幫助我們節(jié)約更多的調(diào)試時(shí)間,這也使得 JetBrains 更具吸引力。

集成 Git

VS Code:內(nèi)置了一個(gè)強(qiáng)大的源碼控制管理

需要團(tuán)隊(duì)協(xié)作或在乎代碼安全的人都知道 Git 在他們工作流中的重要性。對(duì)于任何現(xiàn)代編輯器來(lái)說(shuō),基于 Git 的版本控制都是不可或缺的功能。VS Code 和 Git 的集成做的非常好,當(dāng)你打開(kāi)一個(gè)工作目錄的時(shí)候,它會(huì)自動(dòng)檢測(cè)這是否為一個(gè) Git 倉(cāng)庫(kù)。如果是,那么它就會(huì)立即提供諸如 push、pull、commit 等許多固有的 Git 命令。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

在 VS Code 的 Git 面板中,人們可以清楚的看到哪些些文件做了修改,且輕松完成同步。同時(shí),在面板中,也可以創(chuàng)建分支、克隆倉(cāng)庫(kù)。VS Code 總能清楚的告訴你該怎么做,這也是我喜歡它的一個(gè)原因。當(dāng)它檢測(cè)到了文件修改,就會(huì)立即提示你提交,并且在提交的時(shí)候會(huì)提示你需呀附帶上提交說(shuō)明。此外,在提交的時(shí)候,它還會(huì)對(duì)本地分支和遠(yuǎn)程分支進(jìn)行檢測(cè)和同步。與此同時(shí),它還提供了非常穩(wěn)定的變基功能。

在行內(nèi)可以清楚的看到哪里需要做沖突合并

合理處理沖突合并的能力,是 VS Code 的一大優(yōu)勢(shì)。借助 VS Code 自動(dòng)提供的沖突解決方案,我可以通過(guò)點(diǎn)擊按鈕來(lái)選擇使用當(dāng)前更改還是選擇使用傳入的更改。這種解決合并沖突的方式,為我節(jié)約了很多時(shí)間。

JetBrains:再也不需要使用命令行來(lái)做源碼管理

在全面切換到 JetBrains 之后,我?guī)缀鯖](méi)有碰過(guò)我的終端命令行。JetBrains 提供了包括提交、沖突解決、分支切換和分支對(duì)比等在內(nèi)的源碼管理等整體功能。從我的體驗(yàn)來(lái)看,JetBrains 在源代碼控制上比 VS Code 的要好得多。下面我羅列一些使用體驗(yàn)的截圖:

  • 在兩個(gè)分支之間對(duì)比某個(gè)文件

  • 內(nèi)置的分支詳情展示

  • 詳細(xì)的 git 日志

能力對(duì)比

在 Git 集成上,JetBrains 和 VS Code 都提供了完整且相同的功能。無(wú)論你選擇哪款 IDE,在源碼管理上都有足夠的功能支撐。因此這方面不能作為選擇 IDE 的考慮因素,只是個(gè)人喜好不同而已。例如,在解決合并沖突的時(shí)候,相對(duì)于 VS Code 將沖突文件堆在一個(gè)文件中顯示的方式,我更喜歡 JetBrains 將沖突文件分開(kāi)顯示的方式。

擴(kuò)展性

VS Code:豐富的擴(kuò)展性

VS Code 是最具擴(kuò)展性的編輯器之一,而且集成能力和可擴(kuò)展性是它的核心功能。在眾多擴(kuò)展能力中,Python 擴(kuò)展、遠(yuǎn)程開(kāi)發(fā)擴(kuò)展以及一些智能感知驅(qū)動(dòng)的擴(kuò)展是目前最熱門(mén)的。此外,VS Code 也有一些很酷的功能,例如通過(guò) Prettier 進(jìn)行代碼格式化,通過(guò)圖標(biāo)和代碼編輯器主題進(jìn)行主題定制等。VS Code 提供的每個(gè)事項(xiàng)或功能特性都是完全可擴(kuò)展的,同時(shí)擴(kuò)展的本身也可能是增強(qiáng)擴(kuò)展能力的過(guò)程。

對(duì)遠(yuǎn)程 docker 容器的支持,是我最喜歡的一個(gè) VS Code 擴(kuò)展能力。通過(guò)此功能,用戶可以在 VS Code 中在 docker 容器內(nèi)部進(jìn)行遠(yuǎn)程編程。如果你本地或遠(yuǎn)程環(huán)境安裝了 docker,那么在 VS Code 中你就可以輕松的運(yùn)行你的代碼以及完成所有之前需要在 docker 中才能完成的事情。

想要一些更有趣的東西?通過(guò) SSH 進(jìn)行遠(yuǎn)程開(kāi)發(fā)怎么樣?微軟開(kāi)發(fā)的擴(kuò)展插件就允許人們?cè)?VS Code 中通過(guò)遠(yuǎn)程 SSH 進(jìn)入到服務(wù)端開(kāi)發(fā)環(huán)境,如同本地一樣進(jìn)行遠(yuǎn)程開(kāi)發(fā)。在 VS Code 中想要集成這些功能,只需要簡(jiǎn)單點(diǎn)擊安裝一下,就可以成功運(yùn)行,所有的這些功能,成就了 VS Code 的偉大。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

JetBrains:集成生態(tài)

對(duì)于 JetBrains 來(lái)說(shuō),可擴(kuò)展性并不是它需要突出的一個(gè)點(diǎn),因?yàn)槟銜?huì)發(fā)現(xiàn)絕大部分你需要的功能都會(huì)隨著的 IDE 版本的發(fā)布而發(fā)布。為某種語(yǔ)言安裝一款強(qiáng)大的 IDE 的好處是,當(dāng)我們需要某些新功能的時(shí)候可能只需要升級(jí)下 IDE 版本就擁有了,而無(wú)需去擴(kuò)展市場(chǎng)進(jìn)行尋找。

例如,JetBrains 針對(duì) docker 提供了強(qiáng)大內(nèi)置支撐。僅通過(guò)指定一個(gè)諸如 Dockerfile 的配置類型文件,所有的 JetBrains 的 IDE 都會(huì)通過(guò)一個(gè)易用的 GUI 提供對(duì)所有參數(shù)、名稱、標(biāo)簽、端口以及環(huán)境變量的完整控制。在運(yùn)行的時(shí)候,IDE 通過(guò)集成 docker,為你提供 docker 的構(gòu)建日志、運(yùn)行日志、環(huán)境變量以及可視化的集成配置信息:

在集成 FastAPI、Flask、shell 等第三方能力上,JetBrains 提供了和集成 docker 一樣的能力。

此外,JetBrains IDE 也有一個(gè)豐富的插件生態(tài)系統(tǒng)。例如,我可以為支持 Verilog 和 Matlab 分別安裝特定的插件。不過(guò)有趣的是,這些輕量級(jí)的插件,居然比本地安裝的 Matlab 和 Quartus(Verilog 的開(kāi)發(fā)環(huán)境)環(huán)境提供了更好的編程體驗(yàn)。

能力對(duì)比

毫無(wú)疑問(wèn),兩者在擴(kuò)展或插件上都有廣泛的社區(qū)和市場(chǎng)的支撐。兩款 IDE 在功能上各有千秋。兩款編輯器之間互缺的功能,你可能希望他們各自豐富起來(lái)。不過(guò),VS Code 的社區(qū)稍微大些,因而擁有更多的擴(kuò)展和一些諸如遠(yuǎn)程容器擴(kuò)展之類的能力,這樣使我們迭代的速度更快。因此,如果你日常工作中對(duì)諸如 Docker 的定制擴(kuò)展有比較多的需求,那么 VS Code 可以說(shuō)是你的專屬 IDE 了。

協(xié)作能力

VS Code:基于插件實(shí)現(xiàn)實(shí)時(shí)共享

雖然 VS Code 自身沒(méi)有內(nèi)置的實(shí)時(shí)共享功能,但微軟為其開(kāi)發(fā)了一個(gè)具備此功能的插件。除此之外,現(xiàn)在,人們甚至可以直接通過(guò)使用瀏覽器訪問(wèn) vscode.dev 進(jìn)行實(shí)時(shí)共享。這種需求實(shí)現(xiàn)的多樣性,正是 VS Code 如此受歡迎的原因。只要你有良好的網(wǎng)絡(luò)環(huán)境,實(shí)時(shí)共享的體驗(yàn)就會(huì)很好。在實(shí)時(shí)共享的過(guò)程中,人們可以如同面對(duì)面一樣的進(jìn)行結(jié)伴協(xié)同工作。

同時(shí),在源碼控制上,VS Code 還會(huì)時(shí)時(shí)追蹤那些幫助作者提交代碼的人。這些讓我們看到了在 VS Code 中開(kāi)啟實(shí)時(shí)共享功能是如此的簡(jiǎn)單。因此,在我看來(lái),VS Code 在實(shí)時(shí)共享功能上比市面上任何其他的 IDE 和編輯器都要優(yōu)秀。

不過(guò)在使用 VS Code 的實(shí)時(shí)共享功能,還是有些需要注意的地方。下面我舉一個(gè)在 Vue.js 項(xiàng)目中使用實(shí)時(shí)共享功能的例子。在實(shí)時(shí)共享 Vue 代碼時(shí),包括 Vetur(Vetur 是 Vue 可視化的重要插件)在內(nèi)的部分插件是不會(huì)被共享的。這種缺陷,時(shí)常會(huì)令人們陷入困境和煩躁中。不過(guò)還好,這樣的缺陷,只會(huì)影響到某些特定的用戶(如本例中,就只會(huì)影響 Vue 的用戶)。

另外,最令我厭恨的是,在實(shí)時(shí)共享中,撤銷功能居然是綁定到了機(jī)器上而不是當(dāng)前用戶上,這導(dǎo)致我的撤銷功能會(huì)在本地和遠(yuǎn)程之間發(fā)生混亂。

JetBrains:安全、分布式

所有 JetBrains 生態(tài)的 IDE 在代碼共享和在線協(xié)同的功能上,都提供了非常多的設(shè)置項(xiàng)。這些設(shè)置項(xiàng)根據(jù)不同的安全等級(jí)而有所不同。

我最近發(fā)現(xiàn)一個(gè)令人印象深刻的能力是,通過(guò) projector(投影)技術(shù),可以在 docker 容器中運(yùn)行任何 JetBrains 的 IDE,這使得我可以連接到一個(gè)基于云服務(wù)運(yùn)行的 JetBrains 的 IDE 上,同時(shí)在瀏覽器中使用完整的 JetBrains 的 IDE 的功能進(jìn)行編碼。

因此現(xiàn)在,我可以僅憑一個(gè)密碼,通過(guò)使用一個(gè) headless 的服務(wù),就可以隨時(shí)隨地的安全的進(jìn)行編碼。這還只是 JetBrains 眾多共享配置中的一個(gè)。

在所有的 JetBrains 的 IDE 中,通過(guò) Code With Me 進(jìn)行實(shí)時(shí)共享是主流方式。這種方式使得你可以在本地 IDE 中直接查看其他人的項(xiàng)目。

與此同時(shí),你還可以如同使用本地開(kāi)發(fā)環(huán)境一樣,使用其他人的開(kāi)發(fā)環(huán)境運(yùn)行項(xiàng)目。一個(gè)印象深刻的場(chǎng)景是,我的一個(gè)團(tuán)隊(duì)成員,遇到了一個(gè) python 的問(wèn)題,他通過(guò) Code With Me 向我發(fā)起了一個(gè)代碼實(shí)時(shí)共享,我通過(guò)此共享,在我自己的 IDE 中,如同本地一樣的使用他的配置,經(jīng)過(guò)代碼的調(diào)試,我很輕松的幫助他解決了這個(gè)問(wèn)題。

各種不同優(yōu)秀的共享 IDE 的方案,在嘗試提高安全、協(xié)作能力或分布式團(tuán)隊(duì)如何協(xié)同工作上的表現(xiàn)是令人驚訝的。另外,如果你的IDEA以及其他JetBrains產(chǎn)品需要免費(fèi)永久激活,可以使用這個(gè)教程:http://www.javatiku.cn/idea/1270.html,教程通用、支持JetBrains全家桶產(chǎn)品。

能力對(duì)比

如果是在兩年前,我可能會(huì)認(rèn)為實(shí)時(shí)共享功能無(wú)足輕重。事實(shí)上,兩年前我甚至都不知道 IDE 中有代碼協(xié)同的功能。因?yàn)樵趦赡昵?,?dāng)我們需要協(xié)同工作的時(shí)候,根本不會(huì)通過(guò) IDE 發(fā)起遠(yuǎn)程協(xié)作,而是直接坐到同一臺(tái)機(jī)器前。

但是現(xiàn)在受到新冠疫情的影響,這種面對(duì)面的協(xié)同工作已經(jīng)是種奢望且變得極為困難。正因如此,兩款 IDE 在實(shí)時(shí)代碼共享上都做了強(qiáng)力的支撐。但是,由于 VS Code 中撤銷功能的問(wèn)題,因此我極力推薦 JetBrains。而且,視頻和音頻通話的支持和用戶間 Git 的追蹤能力都是同樣重要。

總結(jié)

除了上面列出的 5 方面對(duì)比之外,我也知道,相對(duì)于 VS Code 的完全免費(fèi),JetBrains 對(duì)于非學(xué)生的用戶的需要收取一定的費(fèi)用,這或許也是導(dǎo)致很多人不考慮 JetBrains 的原因之一。

但是,對(duì)我而言,在使用 JetBrains 生態(tài)的幾個(gè)月的時(shí)間里,它給我?guī)?lái)了非常不錯(cuò)的體驗(yàn)。而且,我已經(jīng)迫不及待的希望在工作中更多的去使用它們了。因此,我希望即使 JetBrains 需要花費(fèi)一些費(fèi)用,你也可以考慮一下它。

原文鏈接:https://blankly.finance/vscode-vs-jetbrains/

用了五年 VS Code ,我決定換成 JetBrains…的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乳山市| 嘉义市| 石嘴山市| 黄浦区| 株洲县| 丽江市| 武义县| 澄江县| 丰原市| 庆阳市| 依兰县| 五指山市| 剑川县| 财经| 商都县| 扬中市| 淅川县| 大姚县| 凤翔县| 天柱县| 修文县| 甘孜县| 江安县| 土默特右旗| 修文县| 玛多县| 绥德县| 黑水县| 龙门县| 襄城县| 阆中市| 南乐县| 上虞市| 南和县| 个旧市| 修武县| 新巴尔虎左旗| 汾西县| 贡嘎县| 沂水县| 高邑县|