為什麼需要雲IDE?

一.雲 IDE?是新概念嗎?

不不不,早在 2010 年就有成熟的產品了:Cloud9 IDE

時至如今,雲 IDE 已經相當常見了,比如:

  • Cloud9:亞馬遜為其雲計算服務提供的 IDE

  • Eclipse Che及Eclipse Theia:老牌 IDE 的雲化版本

  • Coder:以及前不久開源的code-server

  • Expo Snack:React Native 的雲端開發環境

  • Coding:國內的雲 IDE 產品

  • codesandbox:面向 Web 項目的雲 IDE

 

二.為什麼需要雲 IDE?

一般的開發工作流中,我們會建立一套本地環境,包括順手的 IDE 和整套本地工具,但這種本地開發模式存在一些問題:

  • 開發機性能要求高:冷編譯一次 40 分鐘

  • 開發環境配置複雜:工具環境能夠通過容器技術或一系列版本管理工具(如 nvm)解決,但網絡、安全等環境就不那麼容易配置了

  • 依賴特定設備:休假可以,但是帶上電腦,24 小時 On Call,10 分鐘無響應記大過一次

  • 巨型代碼庫的管理難題:巨型代碼庫切換個 Git 分支,動輒半小時

於是,遠程開發的理念應運而生,連接遠程測試服務器,直接在服務器環境完成日常開發工作,免去本地重建並維護一套測試環境的成本

現有的遠程開發模式下,工程師大多通過終端交互工具連接遠程機器,並通過 vim、naro 等文本編輯器來開發。而這些編輯器通常對項目文件管理、運行任務、調試器、智能提示/補全等基礎功能的支持不那麼友好,並不能像本地 IDE 一樣提供舒適的開發環境。開發體驗下降的同時,也限制了開發效率

那麼,有沒有兩全其美的辦法?

有,把 IDE 也搬到遠程,即雲 IDE

P.S.或者把雲拽下來,即,本地 IDE 提供遠程開發能力,但理念上與雲 IDE 並無二致(本地 IDE 相當於瀏覽器),具體見VSCode 遠程開發套件

 

三.雲 IDE 能解決什麼問題?

綜上,IDE 上雲能解決兩方面問題:

  • 本地開發模式難以解決的問題:不再要求本地機器十分強大,不必擔心環境,不依賴特定辦公設備,硬盤也不用再瘋狂旋轉

  • 遠程開發模式的體驗問題:不再是 Web Editor 玩具,而與本地 IDE 一樣順手的開發環境

雲 IDE 也是遠程開發模式的一種實現形式,自然能夠解決本地開發模式所存在的一些難題

同時,作為 Web Editor 的升級形態,雲 IDE 能夠提供更好的遠程開發體驗,補足遠程開發模式的體驗短板,解決工具不稱手限制開發效率的問題

 

四.雲 IDE 有什麼作用?

無論本地 IDE 還是雲 IDE,都具有兩個基本作用:

  • 提升開發效率:整合零碎的開發工具/服務,實現工具鏈的平台化

  • 升級開發體驗:無縫連接開發工作流,提供一站式體驗

從開發者角度來看,IDE 的關鍵在於對工具的整合與連接,不只是簡單的工具集,而是讓這些工具能以最自然的方式配合工作,組成高效的工作流。即工作台/工作助理 >> 工具集

IDE >> 項目文件管理 + 文本編輯器 + 交互式終端 + 項目腳手架 + 運行任務 + 調試器 + 工具插件 + ...工具

對雲服務供應商而言,能夠實現從 Cloud Shell、Cloud Editor 到 Cloud IDE 的產品形態升級,將一系列產品(雲服務)與用戶的工作流緊密結合起來,不僅能更好地表達產品功能,還能通過 IDE 更高效率地觸達用戶

                     ^ FaaS、BaaS
                    /
雲服務用戶 ---> 雲IDE ---> 數據存儲服務
                    \
                     v 計算資源

 

五.應用場景

在肉眼可見的未來,雲 IDE 有這樣幾個應用場景:

  • FaaS:函數即服務,那麼,函數在哪裡寫?
    獨立的技術生態:如 React Native、小程序、可視化搭建系統等

  • 雲計算產品:從提供離散的產品/服務(如 FaaS),轉向提供定製開發環境和工作流

  • 源碼管理平台:試想,GitHub/GitLab 即開發環境

  • 研發工作台:雲計算時代的全雲研發模式下,需求-開發-測試-運維的完整鏈路

 

六.未來的研發模式(可能)是怎樣的?

以雲 IDE 為中心的高效研發模式,可能是這樣的:

  • 統一的開發環境:藉助容器技術,開發環境也能作為項目的一部分,像源碼一樣管理起來(基礎設施即代碼,Infrastructure as Code),代碼風格約束也能更好地落實

  • 專用 IDE:通過定製開源 IDE,提供更貼合產品/業務的專用 IDE

  • 完整的工程化鏈路:編輯-構建-運行-調試-測試-運維

  • 飛快的構建速度:得益於雲計算的彈性調配能力,編譯時長能被大幅縮短

  • Code anywhere:開發環境也能像雲計算服務一樣觸手可得,隨時隨地,想碼就碼

  • 實時協作:在線 Review,手把手教學,共享工作空間、一鍵分享代碼

  • AI 助力開發:基於全源碼的智能提示、甚至代碼生成、質量分析等

在技術走向 techless 的同時,研發模式或將迎來 tool-less 時代

 

參考資料

    • The Future of Cloud IDEs

    • IDEs are Moving to the Cloud

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!