從 0 開始體驗一波遠程開發
大家好,我是魚皮。
記得剛開始學編程的時候,我理所應當地以為只能編輯自己電腦上的代碼文件。如果想要修改服務器上的代碼,只能先把代碼從服務器上拷貝下來,然后在本地修改好再上傳到服務器上。
但是這樣效率實在太低了!
后來我學聰明了,利用 git 在本地和遠程之間同步。先在本地修改好代碼,git push 推送到 Github 代碼托管平台上,再到服務器上 git pull 拉取。雖然方便了不少,不過遇到頻繁修改的情況還是很抓狂。

那有沒有更高效的方式,能夠保持本地和遠程代碼的實時同步呢?
請出今天的主角:遠程開發技術,下面我帶大家體驗一波。
遠程開發實戰
本文大綱:

何為遠程開發?
遠程是相對於本地的。
傳統開發中,我們都是本地寫好代碼再放到服務器上運行。
而遠程開發的特點是:
-
代碼不放在自己電腦上,而是在遠程連接的服務器上
-
可以在本地直接實時查看和修改遠程服務器上的代碼
也就是說,我們可以蹲在家里,用自己的一台電腦去靈活編輯遠在天邊的服務器上的代碼。

注意!不要把遠程開發理解為遠程辦公哈哈。
聽起來還是挺爽的,有很多種技術可以實現遠程開發,比如最古老的遠程控制方式。這里推薦大家直接使用開發工具自帶的遠程開發插件,比如 JetBrains 全家桶和 VS Code。
由於 VS Code 相對輕量易用,這里帶大家實戰一波 VS Code 遠程開發。

實戰體驗
1. 安裝插件
首先打開 VS Code,點擊左側擴展按鈕,搜索 "remote",能夠看到一些遠程開發插件,支持 SSH 遠程連接、連接 Docker 容器、連接Windows 上的 Linux 子系統等。
這里我們選擇下圖第二個 Remote - SSH ,點擊安裝即可:

2. 遠程連接
安裝好之后,按 ctrl + shift + p 打開命令面板,輸入 "remote",找到 Remote - SSH: Add New SSH Host ,添加一個 SSH 遠程連接。

根據提示輸入你要連接的遠程服務器的用戶名、主機地址(如果沒有服務器,在本地啟動虛擬機也可以),記得帶上 -A 參數(開啟代理轉發功能):

輸入連接信息后,選擇將該信息保存到一個配置文件中:

然后連接信息就添加成功了:

點擊 connect 按鈕,就連接成功了,在左側面板中可看到 “已連接到遠程”:

3. 實時瀏覽
連接到遠程后,我們就可以像操作自己本地電腦一樣,瀏覽遠程服務器上的文件。
比如說我這里進入自己的項目目錄:

在左側可以看到目錄下的文件:

4. 遠程編輯
讓我們在編輯器中新建一個文件 test.java ,

可以使用 XShell 等其他遠程 SSH 連接軟件訪問同一台服務器,進入同一個目錄,用 ls 查看目錄下的文件,能看到在 VS Code 中新建的 java 文件:

5. 實時協作
我們可以用 VS Code 和其他 SSH 連接軟件(如 XShell)來模擬兩個用戶正在同時協作編寫同一個代碼文件。
先在 VS Code 中寫下一行優質代碼:

再在 XShell 中編輯該文件,可以立即看到 VS Code 寫下的那行代碼,在它下面再寫一行:

保存之后,在 VS Code 中就能看到全部代碼了:

6. 端口轉發
既然我們編輯的代碼是在遠程的,那代碼也是運行在遠程的,假如說要查看遠程項目的運行效果,怎么辦呢?
VS Code 提供了端口轉發功能,可以配置遠程服務器和本地端口的映射,以支持本地直接訪問到遠程服務器的應用。
按 ctrl + shift + p 打開命令面板,搜索 "forward",選擇轉發端口:

輸入要轉發的端口號(應用占用的端口),就添加成功了,非常方便!

然后就能在本地訪問運行的項目啦!

7. 遠程調試
除了遠程編輯代碼外,我們可以利用 VS Code 本身的代碼提示能力和調試能力。由於遠程調試和本地調試幾乎沒有任何區別,此處不再演示。
感受
雖然之前早就聽說了遠程開發,但一直覺得這玩意配置肯定會很麻煩,而且沒啥用。但實際體驗下來,不僅安裝方便,而且操作友好、基本感受不到延遲,就像在用自己的電腦一樣,真心非常爽!

遠程開發有很多好處:
-
由於代碼運行在遠程服務器,能夠大大節省自己電腦的資源,不會出現多開幾個項目電腦就卡如狗的情況。
-
可以多人協同編輯,提高協作效率。
-
不用在本地搭建環境,就能快速上手開發。尤其是一條龍開發、啥都讓你干的時候,更爽,比如之前我去緊急支持一個項目的時候,同事有一台開發機,上面有現成的可運行環境和項目代碼。下次再遇到這種情況,我就直接連他的服務器遠程開發就行了。
-
如果對 Linux 服務器操作不太熟悉,也可以把遠程開發當成一個傻瓜式服務器管理軟件。
以上就是本期分享,感興趣的同學可以看下我在小破站新發布的 VS Code 遠程開發演示視頻(https://www.bilibili.com/video/BV1s64y167cM/)。
我是魚皮,正在努力變強(禿)的知識博主,歡迎閱讀 我從 0 自學進入騰訊的編程學習、求職、考證、寫書經歷,不再迷茫!
點贊 還是要求一下的,祝大家都能心想事成、發大財、行大運。

