<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>

          GoLand 也可以遠(yuǎn)程開發(fā)了:試用報告

          共 5275字,需瀏覽 11分鐘

           ·

          2021-03-31 11:56

          閱讀本文大概需要 6 分鐘。

          大家好,我是站長 polarisxu。

          JetBrains 官方發(fā)了一篇文章:《使用 Projector 遠(yuǎn)程訪問 IDE》,了解到 JetBrains 搞了一個遠(yuǎn)程開發(fā) IDE。很多人知道 VSCode 可以進(jìn)行遠(yuǎn)程開發(fā),現(xiàn)在 JetBrains 系列 IDE 也支持了(自然 GoLand 也支持),于是安裝試用了下,給大家做一個匯報。

          01 Projector 是什么

          Projector 是一種遠(yuǎn)程運(yùn)行和訪問 Swing GUI 應(yīng)用程序的技術(shù)(Swing 是 Java 的 GUI API,JetBrains 系列 IDE 都是使用 Swing 繪制的 UI),目前 1.0 版本可用,不過還是預(yù)覽版(初始版本)。

          圖片來自官方

          也就是說,Projector  可以通過網(wǎng)絡(luò)遠(yuǎn)程運(yùn)行 JetBrains IDE 和 Swing 應(yīng)用。

          Projector 還是一種自托管技術(shù),可在服務(wù)器上運(yùn)行基于 IntelliJ 的 IDE 和基于 Swing 的應(yīng)用,讓您可以使用瀏覽器和本機(jī)應(yīng)用從任何位置進(jìn)行訪問。

          為什么要開發(fā) Projector 呢?官方解釋,在有些特殊情況下,比如瘦客戶端,需要采用特殊的方法。具體來說有如下應(yīng)用場景:

          • 高度安全的企業(yè)環(huán)境。
          • 真正的大型項目。
          • 禁止源代碼本地復(fù)制。
          • 用戶硬件約束。
          • 瘦客戶端。
          • 需要在 Windows 機(jī)器甚至是 ChromeOS 等非傳統(tǒng)操作系統(tǒng)上的 GNU/Linux 環(huán)境中運(yùn)行 IDE。
          • 需要在關(guān)閉計算機(jī)后讓應(yīng)用在服務(wù)器上繼續(xù)運(yùn)行。
          • 遠(yuǎn)程調(diào)試服務(wù)器端(devtest、devprod)。
          • 具有調(diào)試源和預(yù)配置 IDE 的 VM 或 Docker 映像。
          • 需要遠(yuǎn)程訪問的配置。

          可見,有些時候如果能遠(yuǎn)程開發(fā),確實還挺方便的。

          注意,Projector 目前不支持協(xié)作開發(fā)。

          特別值得一提的是,Projector 是開源的,它采用 C-S 架構(gòu)(其實也支持 B-S 架構(gòu)),IDE 運(yùn)行在服務(wù)器,客戶端通過網(wǎng)絡(luò)鏈接到服務(wù)器上的 IDE,有點(diǎn)遠(yuǎn)程桌面的感覺。

          因此,Projector 至少包含兩部分:

          • 服務(wù)端,即 projector-server,地址:https://github.com/JetBrains/projector-server
          • 客戶端,即 projector-client,地址:https://github.com/JetBrains/projector-client

          現(xiàn)在是容器時代,為了方便,官方提供了 Server 的 Docker 版本,地址:https://github.com/JetBrains/projector-docker,我試用就基于 Docker 進(jìn)行的。

          02 安裝

          關(guān)于服務(wù)器端安裝有多種方式,但這里我只介紹我采用的基于 Docker 的方式。畢竟 Docker 是在云環(huán)境中運(yùn)行 Projector 的最簡單的方法。

          官方構(gòu)建好了可以直接使用的鏡像,不過沒有發(fā)布到 DockerHub,而是使用自定義 Docker Registry。因為我使用 GoLand,所以執(zhí)行如下命令:(記得先安裝好 Docker)

          $ docker pull registry.jetbrains.team/p/prj/containers/projector-goland

          其他 IDE 怎么安裝,官方在 GitHub 上有列出:

          docker pull registry.jetbrains.team/p/prj/containers/projector-clion
          docker pull registry.jetbrains.team/p/prj/containers/projector-datagrip
          docker pull registry.jetbrains.team/p/prj/containers/projector-goland
          docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c
          docker pull registry.jetbrains.team/p/prj/containers/projector-idea-u
          docker pull registry.jetbrains.team/p/prj/containers/projector-phpstorm
          docker pull registry.jetbrains.team/p/prj/containers/projector-pycharm-c
          docker pull registry.jetbrains.team/p/prj/containers/projector-pycharm-p
          docker pull registry.jetbrains.team/p/prj/containers/projector-webstorm

          安裝完成后,可以通過下面命令運(yùn)行 Server:

          docker run --rm -p 8887:8887 -it registry.jetbrains.team/p/prj/containers/projector-goland

          打開瀏覽器,訪問 http://localhost:8887/ 即可試用了。這是將 Server 安裝在了本地,如果將 Server 安裝在性能更好的服務(wù)器上,該怎么訪問呢?

          簡單的,可以通過 Nginx 做反向代理,配置好域名。我進(jìn)行了相關(guān)嘗試,將 Server 安裝在 Linux 服務(wù)器,本地使用 Mac。Nginx 的配置如下:

          server {
          listen 80;
          server_name goland.studygolang.com;

          location / {
          proxy_pass http://127.0.0.1:8887;#必須
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_http_version 1.1;#必須
          proxy_set_header Upgrade $http_upgrade;#必須
          proxy_set_header Connection "upgrade";#必須
          proxy_send_timeout 30s;#send 超時時間 記得一定要按需配置這個 否則默認(rèn)60s就斷開了
          proxy_read_timeout 30s;#read 超時時間
          }
          }
          • server_name 可以隨便配置一個,但不進(jìn)行實際的解析,而是在本地配置 host;
          • 因為和服務(wù)器通訊使用的是 WebSocket,因此需要做 WebSocket 的代理;

          關(guān)于安全問題,可以在 https://github.com/JetBrains/projector-docker#faq 查看,因為我只是試用,所以沒有考慮安全問題。

          這樣在本地通過 http://goland.studygolang.com 就可以打開 GoLand IDE 了。

          03 試用

          瀏覽器打開后,會出現(xiàn)如下安全提示,點(diǎn)擊確認(rèn)即可。

          等待鏈接建立后,出現(xiàn)用戶須知:

          勾選后,繼續(xù)。接著提示你是否發(fā)送給它們統(tǒng)計數(shù)據(jù),你決定即可。

          之后出現(xiàn)這個定制界面,默認(rèn)選中暗黑模式,你可以選擇左下角跳過,保留默認(rèn)。

          最開始,我以為這種方式可以免費(fèi)使用 GoLand 了,當(dāng)看到這一步,嗯,我想多了:

          這里我們選擇免費(fèi)試用,可以試用 30 天。

          接下來的步驟和原生版本的 GoLand 是一樣的。

          不過有一點(diǎn)尷尬的是,這個鏡像中并沒有安裝 Go,怎么辦?我目前的辦法是通過 Docker 和宿主機(jī)進(jìn)行目錄映射,使用宿主機(jī)上的 Go,即這樣啟動 Docker:

          $ docker run --rm -p 8887:8887 -it -v xxx:/usr/local/go  registry.jetbrains.team/p/prj/containers/projector-goland

          其中,-v 后面的 xxx 替換為宿主機(jī)上的 Go 安裝目錄,重啟啟動后,配置好 GOROOT(選擇 /usr/local/go),可以正常寫代碼了:

          然后可以運(yùn)行、調(diào)試了。

          不過瀏覽器使用感覺不是太爽,官方還提供了原生客戶端,即上面說的 client,我們通過這個地址下載一個:https://github.com/JetBrains/projector-client/releases/tag/launcher-v1.0.1,記得選擇適合你操作系統(tǒng)的版本。

          安裝啟動后,長這樣:

          就是一個空殼子。跟瀏覽器中類似,我們輸入地址,然后 Connect。之后的過程和瀏覽器是一樣的。

          如果之前在瀏覽器打開過,這個客戶端會直接記憶上次的位置,而不是第一次訪問的那些界面,現(xiàn)在看起來是不是跟本地的 GoLand 差不多了:

          04 感受

          試用后,感覺目前還不是太成熟:

          • 啟動時,有時候會莫名報錯,需要重新運(yùn)行 Server;
          • 用起來不是很流暢;
          • Mac 下,沒有應(yīng)用全局菜單,設(shè)置在 File 菜單下;而且 Command 相關(guān)快捷鍵沒作用,必須改用 Control,這會很不習(xí)慣;

          也許還有其他問題,我沒有深入使用,畢竟使用起來體驗不太好。

          不過,JetBrains 說 Projector 是一種技術(shù),而不是最終用戶解決方案。你可以使用它來自定義架構(gòu),滿足您的業(yè)務(wù)需求。Ansible?Kubernetes?都是沒有問題的。

          Projector 畢竟剛起步,是一項非常年輕的技術(shù),需要給它一些時間,而且相信開源的力量。JetBrains 有信心,認(rèn)為它有潛力成為遠(yuǎn)程 IDE 訪問的最佳解決方案之一。

          期待 Projector 更好的那一天!!




          往期推薦


          歡迎關(guān)注我

          都看到這里了,隨手點(diǎn)個贊支持下唄!


          瀏覽 89
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  天天躁日日躁AAAXXⅩ | 学生妹一级片,黄色的学生妹一级片 | 亚洲三级片在线 | 天堂九九九 | 91美女黄网站 |