JetBrains又出編程神器!
我很喜歡一些在線協(xié)同編輯的文檔工具:創(chuàng)建一個(gè)文檔,把鏈接分享出去, 別人打開就可以直接編輯。
這時(shí)候我會觀察到別人在文檔中的行為:輸入文字、刪除文字,當(dāng)然我的行為也可以被別人實(shí)時(shí)看到——這種協(xié)同工作的體驗(yàn)實(shí)在非常美妙。
我不由地想到,如果在IDE中也實(shí)現(xiàn)類似的功能,碼農(nóng)的生活將會有趣得多!比如:
遠(yuǎn)程協(xié)助
程序員何小痩編程中遇到一個(gè)問題,需要張大胖遠(yuǎn)程幫忙,何小痩在家里共享一下自己的IDE, 然后張大胖就可以在其中瀏覽代碼、設(shè)置斷點(diǎn)、Debug、看日志......
一邊Debug一邊通過語音、視頻講解自己的思路,很快,問題解決, 何小痩把整個(gè)過程看得清清楚楚。
結(jié)對編程
張大胖和何小痩不用坐在一起,張大胖只要把自己的IDE分享出去,何小痩就能看到并且控制,這樣兩人交替著做“領(lǐng)航員”(思考、提醒)和“駕駛員”(寫代碼),時(shí)不時(shí)通過語音和視頻交流,高效地完成任務(wù)。
代碼講解
張大胖完成了核心功能的開發(fā),需要給小組的人遠(yuǎn)程做講解,他不用告訴大家說:“請打開Parser.java,定位到第129行”, 他只需要把自己的IDE共享給大家,每個(gè)人都能看到他在IDE中用快捷鍵打開類,定位到函數(shù),在不同的類和函數(shù)之間輕松轉(zhuǎn)移,效率極高。
如果有這樣的IDE,那簡直是太棒了!尤其是在疫情之下,大家都進(jìn)入了遠(yuǎn)程工作的時(shí)候。
有人可能要說了,現(xiàn)在的工具——共享桌面——也能做到??!但是由于這些工具共享的是整個(gè)桌面,而不是細(xì)粒度的IDE, 效率很低,網(wǎng)速稍慢就會卡頓,斷線,體驗(yàn)實(shí)在酸爽。
原來我只是這么想一想,沒想到真有IDE實(shí)現(xiàn)了這個(gè)功能, 這就是著名的IDE開發(fā)商JetBrains提供的 Code With Me !

廢話少說, 先來感受一下它最最基本的協(xié)同編輯能力:?

Host (主人)相當(dāng)于共享IDE的那一方, GUEST(客人) 相當(dāng)于接入主人IDE的那一方。
可以看出所有的改動即時(shí)展示在對方的IDE中, 就像兩個(gè)人在共享編輯文檔一樣。
這么有趣的功能,是不是迫不及待想要嘗試一下了?
首先你可以更新IDEA到最新版,或者去Marketplace去安裝插件:

然后你的IDEA右上角就會出現(xiàn)這么一個(gè)圖標(biāo):?

只要選擇“啟用訪問并復(fù)制邀請鏈接”就行, 這個(gè)邀請鏈接大概長這個(gè)樣子:
https://code-with-me.jetbrains.com/kQhi2aDZS68CjvBHd_wZpA#p=IC&fp=ABA0845783217DDBD2F8F5EACEEA3CE9B32FA7C540EB131A256D22436BD38705
注意,這是個(gè)HTTP的鏈接, 把這個(gè)鏈接發(fā)給其他同事,就相當(dāng)于共享你的IDE了, 別人只要點(diǎn)擊,就會出現(xiàn)這個(gè)界面:

即使同事的機(jī)器上沒有安裝IDEA,只要他點(diǎn)擊“Download and Launch”就可以運(yùn)行一個(gè)叫做“Code With Me Guest”的程序來查看你的IDE的內(nèi)容。
如果你同事已經(jīng)有了支持這個(gè)功能的IDEA, 還可以直接加入其他人的共享IDE。?

然后就可以愉快地玩起來了,就是這么簡單, 和那些在線協(xié)作的文檔幾乎是一樣的。
Code With Me 有這么幾個(gè)重要的特性:
1. “客人”看到的是一個(gè)完完整整的IDE, 而不是一個(gè)簡單的編輯器
客人可以使用代碼自動補(bǔ)全、智能導(dǎo)航、重構(gòu)、調(diào)試套件和內(nèi)置終端,還能夠運(yùn)行、Debug程序
當(dāng)然,能干什么事情是分享IDE的“主人”來決定的:

2. 可以有多個(gè)“客人”接入到共享的IDE
每個(gè)客人都可以瀏覽/編輯 不同的文件。
作為“主人”,可以隨時(shí)“跳轉(zhuǎn)”到每個(gè)“客人”正在瀏覽/編輯的文件。

“主人”也可以強(qiáng)制所有人“跟隨”自己的屏幕,?這對于代碼講解的場景特別合適。

4. 支持語音和視頻
一邊碼字,一邊和同事聊天,就像在身邊一樣,是不是很爽?

Code With Me 的流程是這樣的:

可能有人會想到這個(gè)問題:所有人都用同一個(gè)“會客廳”服務(wù)器, 我的代碼就這么在公網(wǎng)上分享,有安全隱患啊!
JetBrains自然也想到了這一點(diǎn), 可以讓每個(gè)公司或者個(gè)體去建立自己的會客廳(服務(wù)器),讓大家在私有網(wǎng)絡(luò)中協(xié)作,只需要在IDEA中設(shè)置一個(gè)Lobby Server就行。

總之,Code With Me是個(gè)讓人興奮的功能,可以輕松地把自己IDE中打開的項(xiàng)目分享給其他人,大家在一起進(jìn)行遠(yuǎn)程的、實(shí)時(shí)的、流暢的協(xié)作,非常有意思,強(qiáng)烈建議大家都來試一下。
下面是一些常見的問題:
1. 哪個(gè)版本的IDEA支持Code With Me?
IntelliJ IDEA 2020.2.1 及以后版本都支持。
2. 只能在IDEA中使用嗎?
不, Code With Me 支持很多編程語言的IDE。?
社區(qū)版支持:

專業(yè)版支持:

3. Code With Me 是免費(fèi)的嗎?
社區(qū)版是免費(fèi)的,但是每個(gè)會話(Session)只能使用30分鐘,超過30分鐘會自動斷開,然后需要主持人(Host)重新分享,訪客(Guest)重新連接。會話數(shù)量不受限制。
專業(yè)版支持 50 個(gè)訪客,每年100美元。任何(上面提及到的)付費(fèi) IDE 用戶,通過JetBrains的教育授權(quán)計(jì)劃、開發(fā)者認(rèn)可計(jì)劃、開源項(xiàng)目支持計(jì)劃所獲得的授權(quán)的用戶都可以免費(fèi)使用。
企業(yè)版授權(quán)支持最多 100 個(gè)訪客,每年400美元。企業(yè)版支持本地版本,允許托管一定數(shù)量的并發(fā)會話,并且每個(gè)都可以邀請最多 100 個(gè) 訪客, 一個(gè)許可證費(fèi)用為400美元/年,10個(gè)許可證起售。
4.?Code With Me的Community版本有沒有功能缺失呢?
Code With Me的Community版本包含Premium版本的所有功能,例如音頻和視頻通話、跟進(jìn)、同步編輯和完全同步模式等。只是訪客(Guest)和會話時(shí)間有限制。同時(shí)不可以在本地服務(wù)器主持會議,只有Enterprise版本支持該功能。
5. 如果我擁有IDEA Ultimate,但是我的訪客(Guest)只擁有Community版本怎么辦呢?
如果你擁有IDEA Ultimate 訂閱那么你可以自動享有Code With Me的Premium版本。你的訪客(Guest)也會通過你的訂閱進(jìn)行連接。這種形式特別適用于教學(xué)活動。如果你的訪客有想要通過他們的Community版本IDE 邀請你,這將會有30分鐘會話時(shí)長限制并只可至多3位訪客。
6. 我的訪客(Guest)需要許可證嗎?
不,只有主持人(Host)用戶需要許可證。
7. 文件都會在訪客設(shè)備中本地存儲嗎?
不,共享的代碼存儲在主持人(Host)用戶設(shè)備中,不會上傳或者存儲在云端,亦或存儲在訪客(Guest)設(shè)備中。
把自己的成長故事寫成文章,
把枯燥的技術(shù)文章寫成故事。我建了一個(gè)讀者交流群,里面大部分是程序員,一起聊技術(shù)、工作、八卦。歡迎加我微信,拉你入群。
推薦閱讀
向老李學(xué)習(xí),還得帶著團(tuán)隊(duì)做出成績
硬著頭皮寫,硬著頭皮搞:一個(gè)服務(wù)一個(gè)數(shù)據(jù)庫模式(下)
我是如何把微服務(wù)的這個(gè)模式落地的:一個(gè)服務(wù)一個(gè)數(shù)據(jù)庫模式(中)
