<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 9053字,需瀏覽 19分鐘

           ·

          2022-02-13 00:35

          以下內(nèi)容來自公眾號(hào)逆鋒起筆,關(guān)注每日干貨及時(shí)送達(dá)

          作者 | Jeremy Liu
          譯者 | 許學(xué)文
          策劃 | 閆園園
          審校 | 王強(qiáng)??
          本文最初發(fā)布于 Blankly 上,經(jīng)原作者授權(quán)由 InfoQ 中文站翻譯并分享。

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

          背? ? 景

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

          我目前在 Blankly 工作,該公司主提供對(duì)沖基金云服務(wù)。在我們提供的云服務(wù)上,人們只需要幾分鐘即可創(chuàng)建自己的交易算法。我的一個(gè)同事 Emerson,他是 JetBrains 生態(tài)的鐵桿粉絲。在一次日站會(huì)上,他為了說服我們?nèi)ピ囈幌?JetBrains 的生態(tài),甚至不惜延長(zhǎng)了會(huì)議時(shí)間。我為了讓會(huì)議對(duì)于這件事的討論早點(diǎn)結(jié)束(這樣站立會(huì)也能早點(diǎn)結(jié)束),我勉強(qiáng)同意了。然而誰承想,現(xiàn)在我居然在這里寫了一篇關(guān)于是什么最終說服我愿意放棄一直陪伴我的 IDE 的文章。因此,如果你正好處在糾結(jié)選擇用什么 IDE 且完全沒有考慮 JetBrains 想法,或你對(duì)我為什么放棄 VS Code 感興趣的話,那么,這篇文章非常適合你繼續(xù)讀完。

          本文是根據(jù)我使用 VS Code 和 JetBrains 的一些切身體會(huì),將從 5 個(gè)方面對(duì)它們進(jìn)行的對(duì)比分析。并且闡述了一些使用場(chǎng)景中 JetBrains 優(yōu)勢(shì)明顯的原因。

          代碼檢查和重構(gòu)
          VS Code:快、簡(jiǎn)單、支撐多語(yǔ)言

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

          其次,由于有了諸如 Github Copilot,AI-based linting,auto imports 等一系列插件的支撐,VS Code 具備了強(qiáng)大的 linting 能力。在 VS Code 中,無論你什么時(shí)候想要什么功能,配置起來都非常容易。很多時(shí)候,只是需要敲個(gè)結(jié)束符,VS Code 就會(huì)將你想要的內(nèi)容提示出來。不過有些時(shí)候,人們也會(huì)因?yàn)檫@種 linting 能力的失效而崩潰。實(shí)際上,我時(shí)常陷入試圖弄清楚為什么一個(gè)標(biāo)準(zhǔn)的 linting 不能工作的困境中。不管是由于我使用 Anaconda 安裝的多 python 環(huán)境導(dǎo)致,還是由于少了安裝包導(dǎo)致,但很多時(shí)候我都無法直接得到答案。此外,VS Code 針對(duì) JavaScript 語(yǔ)言的 linting 能力也非常強(qiáng)大,不過它不會(huì)對(duì) JavaScript 進(jìn)行深入的類型檢查,慶幸的是,我們可以通過 TypeScript 來解決這個(gè)問題。

          如圖所示,由于我忘記切換 VS Code 中的 Python 環(huán)境,所以即使我本地已經(jīng)通過 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)功能方面,它就顯得有些能力不夠了。不過,幸運(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)周章。不過,在兩個(gè)為不同使用場(chǎng)景設(shè)計(jì)的 IDE 之間做切換,付出一些學(xué)習(xí)的時(shí)間成本是不可避免的。如果我的一個(gè) POST 請(qǐng)求突然出問題了,我就得打開 PyCharm,看看是不是我后端 API 服務(wù)出問題 了;如果在推薦類項(xiàng)目中,我突然對(duì)最佳推薦算法有了新的優(yōu)化思路,我就需要打開 CLion。不過,由于有了智能識(shí)別,在打開不同 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è)版本期間,為了讓組件未來具備更強(qiáng)的擴(kuò)展性,我重構(gòu)和新增了一些組件。期間,我大概移動(dòng)了 200 個(gè)組件,在項(xiàng)目編譯的時(shí)候,沒有一次編譯異常是由引用錯(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)工具,它還提供了諸如安全刪除、全局重命名等多種外部工具。

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

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

          能力對(duì)比

          總的來說,我認(rèn)為在代碼檢查和代碼重構(gòu)上,VS Code 和 JetBrains 兩者能力接近。兩者都是通過諸如自動(dòng)代碼檢查、代碼格式化、主題定制等功能,幫助人們更好地進(jìn)行代碼調(diào)試和顯示。不過,JetBrains 具備優(yōu)秀的 linting 引擎和無副作用的重構(gòu)能力,因此,如果代碼分解和重構(gòu)對(duì)你和你的工作流程很重要,那么,我推薦你選擇 JetBrains。

          調(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ǔ)言來說,使用 VS Code 作為其調(diào)試工具是非常方便的。甚至,如果你的環(huán)境配置正確無誤的話,通過直接點(diǎn)擊調(diào)試按鈕來進(jìn)行調(diào)試會(huì)更加便捷。此外,即使是通過修改 settings.json 文件中的配置來改變你當(dāng)前的調(diào)試內(nèi)容也是非常簡(jiǎn)單的。不過,如果你用了特定的構(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)試的過程中,VS Code 在調(diào)試控制臺(tái)中可以很好地進(jìn)行調(diào)試斷點(diǎn)設(shè)置、識(shí)別變量和添加變量觀察者。不過,如果這些功能可以直接在代碼面板而不是側(cè)面板上進(jìn)行設(shè)置,那就好更好了。微信搜索readdot,關(guān)注后回復(fù)視頻教程獲取23種精品資料

          慶幸的是,插件和多語(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)行的,因此你可以通過點(diǎn)擊調(diào)試按鈕開始任何一次程序調(diào)試。如果想設(shè)置全局的調(diào)試斷點(diǎn),只需要在編輯器的行號(hào)處按下空格鍵即可,此功能極大得提高了程序調(diào)試的體驗(yàn)。此外,JetBrains 系列的 IDE 在整個(gè)調(diào)試過程中還有很多其他的功能亮點(diǎn),例如:當(dāng)進(jìn)入調(diào)試環(huán)節(jié),作用域內(nèi)的所有變量的定義,對(duì)于定義者來說都是可見的。這讓我們可以很方面的觀察當(dāng)前變量值的變化情況。幾天前用 Pycharm 調(diào)試程序的過程令我印象深刻。當(dāng)我在 Pycharm 中運(yùn)行調(diào)試并試圖查看數(shù)據(jù)幀的值時(shí),只要點(diǎn)擊數(shù)據(jù)幀變量并按下 view 作為數(shù)據(jù)幀,Pycharm 就會(huì)在 SciView 中打開數(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ì)于開發(fā)人員來說是非常有用的。試想一下,當(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è)非常好用的功能,它允許人們通過放置鼠標(biāo),就可以如同設(shè)置斷點(diǎn)一樣,起到調(diào)試斷點(diǎn)的效果。這種可以隨時(shí)隨地設(shè)置斷點(diǎn)且立即生效的功能,完全我調(diào)試代碼的方式并且大幅加速了我編程的速度。

          能力對(duì)比

          程序調(diào)試是開發(fā)人員每天最常做的事情之一。因此我認(rèn)為,當(dāng)開發(fā)人員選擇 IDE 的時(shí)候,IDE 是否擁有一個(gè)好的調(diào)試器是必須考慮的因素。VS Code 和 JetBrains 都提供了非??煽康恼{(diào)試器,但是我必須說在這方面 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)代編輯器來說,基于 Git 的版本控制都是不可或缺的功能。VS Code 和 Git 的集成做的非常好,當(dāng)你打開一個(gè)工作目錄的時(shí)候,它會(huì)自動(dòng)檢測(cè)這是否為一個(gè) Git 倉(cāng)庫(kù)。如果是,那么它就會(huì)立即提供諸如 push、pull、commit 等許多固有的 Git 命令。

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

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

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

          JetBrains:再也不需要使用命令行來做源碼管理

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

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

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

          詳細(xì)的 git 日志

          能力對(duì)比

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

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

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

          對(duì)遠(yuǎn)程 docker 容器的支持,是我最喜歡的一個(gè) VS Code 擴(kuò)展能力。通過此功能,用戶可以在 VS Code 中在 docker 容器內(nèi)部進(jìn)行遠(yuǎn)程編程。如果你本地或遠(yuǎn)程環(huán)境安裝了 docker,那么在 VS Code 中你就可以輕松的運(yùn)行你的代碼以及完成所有之前需要在 docker 中才能完成的事情。想要一些更有趣的東西?通過 SSH 進(jìn)行遠(yuǎn)程開發(fā)怎么樣?微軟開發(fā)的擴(kuò)展插件就允許人們?cè)?VS Code 中通過遠(yuǎn)程 SSH 進(jìn)入到服務(wù)端開發(fā)環(huán)境,如同本地一樣進(jìn)行遠(yuǎn)程開發(fā)。在 VS Code 中想要集成這些功能,只需要簡(jiǎn)單點(diǎn)擊安裝一下,就可以成功運(yùn)行,所有的這些功能,成就了 VS Code 的偉大。

          JetBrains:集成生態(tài)

          對(duì)于 JetBrains 來說,可擴(kuò)展性并不是它需要突出的一個(gè)點(diǎn),因?yàn)槟銜?huì)發(fā)現(xiàn)絕大部分你需要的功能都會(huì)隨著的 IDE 版本的發(fā)布而發(fā)布。為某種語(yǔ)言安裝一款強(qiáng)大的 IDE 的好處是,當(dāng)我們需要某些新功能的時(shí)候可能只需要升級(jí)下 IDE 版本就擁有了,而無需去擴(kuò)展市場(chǎng)進(jìn)行尋找。微信搜索readdot,關(guān)注后回復(fù)視頻教程獲取23種精品資料

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

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

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

          能力對(duì)比

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

          協(xié)作能力
          VS Code:基于插件實(shí)現(xiàn)實(shí)時(shí)共享
          雖然 VS Code 自身沒有內(nèi)置的實(shí)時(shí)共享功能,但微軟為其開發(fā)了一個(gè)具備此功能的插件。除此之外,現(xiàn)在,人們甚至可以直接通過使用瀏覽器訪問 vscode.dev 進(jìn)行實(shí)時(shí)共享。這種需求實(shí)現(xiàn)的多樣性,正是 VS Code 如此受歡迎的原因。只要你有良好的網(wǎng)絡(luò)環(huán)境,實(shí)時(shí)共享的體驗(yàn)就會(huì)很好。在實(shí)時(shí)共享的過程中,人們可以如同面對(duì)面一樣的進(jìn)行結(jié)伴協(xié)同工作。同時(shí),在源碼控制上,VS Code 還會(huì)時(shí)時(shí)追蹤那些幫助作者提交代碼的人。這些讓我們看到了在 VS Code 中開啟實(shí)時(shí)共享功能是如此的簡(jiǎn)單。因此,在我看來,VS Code 在實(shí)時(shí)共享功能上比市面上任何其他的 IDE 和編輯器都要優(yōu)秀。
          不過在使用 VS Code 的實(shí)時(shí)共享功能,還是有些需要注意的地方。下面我舉一個(gè)在 Vue.js 項(xiàng)目中使用實(shí)時(shí)共享功能的例子。在實(shí)時(shí)共享 Vue 代碼時(shí),包括 Vetur(Vetur 是 Vue 可視化的重要插件)在內(nèi)的部分插件是不會(huì)被共享的。這種缺陷,時(shí)常會(huì)令人們陷入困境和煩躁中。不過還好,這樣的缺陷,只會(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è)令人印象深刻的能力是,通過 projector(投影)技術(shù),可以在 docker 容器中運(yùn)行任何 JetBrains 的 IDE,這使得我可以連接到一個(gè)基于云服務(wù)運(yùn)行的 JetBrains 的 IDE 上,同時(shí)在瀏覽器中使用完整的 JetBrains 的 IDE 的功能進(jìn)行編碼。因此現(xiàn)在,我可以僅憑一個(gè)密碼,通過使用一個(gè) headless 的服務(wù),就可以隨時(shí)隨地的安全的進(jìn)行編碼。這還只是 JetBrains 眾多共享配置中的一個(gè)。
          在所有的 JetBrains 的 IDE 中,通過 Code With Me 進(jìn)行實(shí)時(shí)共享是主流方式。這種方式使得你可以在本地 IDE 中直接查看其他人的項(xiàng)目。與此同時(shí),你還可以如同使用本地開發(fā)環(huán)境一樣,使用其他人的開發(fā)環(huán)境運(yùn)行項(xiàng)目。一個(gè)印象深刻的場(chǎng)景是,我的一個(gè)團(tuán)隊(duì)成員,遇到了一個(gè) python 的問題,他通過 Code With Me 向我發(fā)起了一個(gè)代碼實(shí)時(shí)共享,我通過此共享,在我自己的 IDE 中,如同本地一樣的使用他的配置,經(jīng)過代碼的調(diào)試,我很輕松的幫助他解決了這個(gè)問題。
          各種不同優(yōu)秀的共享 IDE 的方案,在嘗試提高安全、協(xié)作能力或分布式團(tuán)隊(duì)如何協(xié)同工作上的表現(xiàn)是令人驚訝的。
          能力對(duì)比
          如果是在兩年前,我可能會(huì)認(rèn)為實(shí)時(shí)共享功能無足輕重。事實(shí)上,兩年前我甚至都不知道 IDE 中有代碼協(xié)同的功能。因?yàn)樵趦赡昵?,?dāng)我們需要協(xié)同工作的時(shí)候,根本不會(huì)通過 IDE 發(fā)起遠(yuǎn)程協(xié)作,而是直接坐到同一臺(tái)機(jī)器前。但是現(xiàn)在受到新冠疫情的影響,這種面對(duì)面的協(xié)同工作已經(jīng)是種奢望且變得極為困難。正因如此,兩款 IDE 在實(shí)時(shí)代碼共享上都做了強(qiáng)力的支撐。但是,由于 VS Code 中撤銷功能的問題,因此我極力推薦 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ī)砹朔浅2诲e(cuò)的體驗(yàn)。而且,我已經(jīng)迫不及待的希望在工作中更多的去使用它們了。因此,我希望即使 JetBrains 需要花費(fèi)一些費(fèi)用,你也可以考慮一下它。
          原文鏈接:
          https://blankly.finance/vscode-vs-jetbrains/
          作者介紹:
          Jeremy Liu 是一名全棧工程師,目前就職于 Blankly,擔(dān)任首席工程師。
          今日好文推薦

          10 款優(yōu)雅的 Go 語(yǔ)言開發(fā)工具

          2021 年度最佳開源軟件榜單

          公司規(guī)定所有接口都用 POST 請(qǐng)求?

          2022 超有風(fēng)格的微信頭像,快換上吧

          在華為寫了十幾年代碼,一個(gè)程序員的自我修養(yǎng)

          點(diǎn)個(gè)在看少個(gè) bug???

          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲高清视频日本高清视频 | 亚洲精品成人先锋影音 | 欧美性交成人网站 | 4hu四虎永久在线影院 | 久久夜色精品国产网站 |