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

          重磅:國(guó)產(chǎn)IDE發(fā)布,由阿里研發(fā),完全開(kāi)源!?

          共 3704字,需瀏覽 8分鐘

           ·

          2022-07-13 19:59

          來(lái)源:阿里技術(shù)
          經(jīng)歷近 3 年時(shí)間,在阿里集團(tuán)及螞蟻集團(tuán)共建小組的努力下,OpenSumi 作為國(guó)內(nèi)首個(gè)強(qiáng)定制性、高性能,兼容 VS Code 插件體系的 IDE 研發(fā)框架,今天正式對(duì)外開(kāi)源。

          1.OpenSumi 是什么?

          OpenSumi 是一款面向垂直領(lǐng)域,低門(mén)檻、高性能、高定制性的雙端(Web 及 Electron)IDE 研發(fā)的框架。

          框架早期由阿里集團(tuán)淘系工程團(tuán)隊(duì)及螞蟻集團(tuán)體驗(yàn)技術(shù)部、研發(fā)效能團(tuán)隊(duì)聯(lián)合發(fā)起,共同研發(fā)的 IDE 標(biāo)準(zhǔn)化研發(fā)框架。它基于 TypeScript + React 進(jìn)行編碼,實(shí)現(xiàn)了包含資源管理器、編輯器、調(diào)試、Git 面板、搜索面板等核心功能模塊,開(kāi)發(fā)者只要基于我們的起步項(xiàng)目進(jìn)行簡(jiǎn)單配置,便可以快速地搭建屬于自己的本地或云端 IDE 產(chǎn)品,框架自身兼容 VS Code 插件生態(tài),主流 VS Code 插件均可無(wú)縫在基于 OpenSumi 研發(fā)的產(chǎn)品中運(yùn)行,同時(shí),框架也為開(kāi)發(fā)者提供多種低成本,高定制的視圖定制能力,能滿足 IDE 場(chǎng)景下絕大多數(shù)的視圖定制場(chǎng)景。

          對(duì)于 IDE 研發(fā),現(xiàn)今市面上已有了 code-server、Theia 等開(kāi)源方案,我們?yōu)槭裁催x擇自研實(shí)現(xiàn)?自 2019 年開(kāi)始,我們便發(fā)現(xiàn)了阿里及螞蟻集團(tuán)內(nèi)部已經(jīng)有了許多 IDE 產(chǎn)品,大部分產(chǎn)品對(duì)于 IDE 產(chǎn)品的前期建設(shè)大抵相同,但是這部分前期建設(shè)工作占用的則是一個(gè)團(tuán)隊(duì)少則幾個(gè)月,多則半年一年的時(shí)間,存在著大量的重復(fù)勞動(dòng)問(wèn)題,而在部分團(tuán)隊(duì)使用開(kāi)源方案的過(guò)程中,大家也或多或少遇到了一些問(wèn)題,如定制能力有限、源碼依賴深、維護(hù)困難、無(wú)法滿足內(nèi)部能力需求等問(wèn)題。最終,我們決心集合多個(gè)團(tuán)隊(duì)的力量走上自研實(shí)現(xiàn)的道路。

          2.OpenSumi 有什么優(yōu)勢(shì)?

          正如前面所說(shuō)的,OpenSumi 是一款面向垂直領(lǐng)域,低門(mén)檻、高性能、高定制性的雙端(Web 及 Electron)IDE 研發(fā)的框架。它的特點(diǎn)主要體現(xiàn)在下面幾點(diǎn)內(nèi)容:

          1. 全面的視圖定制能力

          除了與主流瀏覽器相近的性能及編碼體驗(yàn)外,在面向業(yè)務(wù)的垂直領(lǐng)域,我們擁有遠(yuǎn)超于同類(lèi)框架的定制能力,基于我們的基礎(chǔ)框架,你可以自由的通過(guò) 模塊 或 插件 定制你的 IDE 產(chǎn)品,能達(dá)到真正意義上的 “全視圖定制” 能力。

          在許多內(nèi)部產(chǎn)品實(shí)現(xiàn)階段,我們會(huì)自然的通過(guò) 模塊 去實(shí)現(xiàn)基礎(chǔ)能力獲得更好的維護(hù)性,而通過(guò) 插件 去實(shí)現(xiàn)業(yè)務(wù)上的視圖或能力上的定制,達(dá)到更高的定制性。以阿里內(nèi)部的部分研發(fā)場(chǎng)景為例,結(jié)構(gòu)分層如下:

          2. 豐富的垂直領(lǐng)域研發(fā)支撐經(jīng)驗(yàn)

          OpenSumi 在正式開(kāi)源之前,在阿里及螞蟻集團(tuán)內(nèi)部已持續(xù)性孵化了兩年之久,期間沉淀落地了一系列具有代表意義的垂直領(lǐng)域下的研發(fā)案例,大部分你能想到的研發(fā)實(shí)踐場(chǎng)景,可能都可以在 OpenSumi 中找到實(shí)踐經(jīng)驗(yàn)。

          • 小程序研發(fā)場(chǎng)景

          針對(duì)小程序研發(fā)場(chǎng)景, 支付寶小程序開(kāi)發(fā)者工具 以及 淘寶小程序開(kāi)發(fā)者工具 便是使用了 OpenSumi 作為核心框架進(jìn)行實(shí)現(xiàn),截止目前,月服務(wù)開(kāi)發(fā)者數(shù)量已達(dá)到 2W +。

          通過(guò)我們的 Toolbar貢獻(xiàn)點(diǎn)及額外的 sumi API,我們能通過(guò)插件實(shí)現(xiàn)進(jìn)一步的視圖定制。如:

          1)定制不同的 Toolbar 展示

          2)實(shí)現(xiàn)獨(dú)立可通信的窗口調(diào)度(如模擬器)

          同時(shí),共享的底層及插件能力,也讓端到端的快速移植成為可能,通過(guò)對(duì) 支付寶小程序開(kāi)發(fā)者工具 相關(guān)插件的移植,我們?cè)诙潭?1 個(gè)月的時(shí)間內(nèi)就完成了對(duì)功能相近,但使用場(chǎng)景不同的 淘寶小程序開(kāi)發(fā)者工具 初期版本的支持,同時(shí)孵化出內(nèi)部使用的 O2 客戶端。

          • 云端一體化研發(fā)鏈路

          在云端一體化研發(fā)鏈路上,我們?cè)谕獠坑?阿里云云開(kāi)發(fā)平臺(tái) ,內(nèi)部則有 O2、Ant Codespaces 等產(chǎn)品。

          常規(guī)的研發(fā)鏈路如下圖上半部分所示。

          我們?cè)陂_(kāi)始一個(gè)項(xiàng)目研發(fā)前往往都需要經(jīng)歷一些或簡(jiǎn)單或繁瑣的環(huán)境配置工作,你的編碼環(huán)境也與云上環(huán)境存在割裂,借助阿里云等云產(chǎn)品的容器能力, 我們可以通過(guò) OpenSumi 搭建屬于企業(yè)或團(tuán)隊(duì)的云端編碼環(huán)境,讓開(kāi)發(fā)者真正省去環(huán)境配置問(wèn)題,在云端完成一切的開(kāi)發(fā)工作。

          通過(guò)深度的流程定制,能讓開(kāi)發(fā)者快捷的進(jìn)入開(kāi)發(fā)狀態(tài)。

          通過(guò)和內(nèi)部研發(fā)平臺(tái)打通,可以一站式的完成開(kāi)發(fā)、測(cè)試、部署等工作。

          • 純前端搭建

          純前端搭建能力是 OpenSumi 在阿里及螞蟻集團(tuán)內(nèi)應(yīng)用的最為廣泛的一塊能力,它提供了一種不需要依賴服務(wù)端去提供編輯器啟動(dòng)所需的 Node.js 服務(wù),直接通過(guò)純前端資源及靜態(tài)接口定義便能搭建起來(lái)一個(gè)具備編輯器基本界面的能力。

          其實(shí)現(xiàn)核心是通過(guò)對(duì)文件、Git 等原本依賴 Node 的服務(wù)進(jìn)行了一層服務(wù)層抽象,讓開(kāi)發(fā)者可以手動(dòng)定義文件讀寫(xiě)等服務(wù)的具體邏輯,同時(shí)基于 OpenSumi 提供的 Web Worker API , 將語(yǔ)言服務(wù)運(yùn)行于瀏覽器的 Web Worker 環(huán)境中,從而實(shí)現(xiàn)了框架的去 Node 化,達(dá)到純前端搭建的效果。

          基于這層實(shí)現(xiàn),你完全可以基于 GitHub Rest API 去實(shí)現(xiàn)一個(gè)純前端編輯器,可以從上面直接進(jìn)行 GitHub 代碼的查看、編輯及提交等操作,后續(xù)我們會(huì)考慮做一個(gè)相應(yīng)的案例出來(lái)。而在內(nèi)部,典型的應(yīng)用是如下一些場(chǎng)景:

          1.代碼評(píng)審

          2.代碼展示

          3.遠(yuǎn)程筆試

          我們?cè)?OpenSumi 代碼倉(cāng)庫(kù)中也提供了一個(gè)簡(jiǎn)易的入門(mén)案例 opensumi/ide-startup-lite , 你也可以直接通過(guò) 預(yù)覽頁(yè)面 直接查看 Demo 效果。

          3. 完整的 VS Code 的插件能力支持

          相信關(guān)注過(guò) IDE 框架的同學(xué)對(duì) Theia 一定不陌生,Theia 作為一款兼容 VS Code 插件的 IDE 框架,確實(shí)兼容了一部分 VS Code 插件能力,但對(duì)于后續(xù) VS Code API 的兼容已經(jīng)越來(lái)越少,基本依賴社區(qū)開(kāi)發(fā)者的發(fā)現(xiàn)貢獻(xiàn)。

          OpenSumi 設(shè)計(jì)之初就是要兼容 VS Code 插件生態(tài),故我們對(duì)于框架會(huì)有持續(xù)性的要求,開(kāi)源之后,我們計(jì)劃每三個(gè)月時(shí)間去完成一次 VS Code 插件 API 的適配工作,適配計(jì)劃的制定,將會(huì)由相應(yīng)的版本管理人員組織在討論區(qū)進(jìn)行,當(dāng)前已適配至 VS Code v1.60.0 版本標(biāo)準(zhǔn) API, 進(jìn)度可見(jiàn) 適配計(jì)劃 。

          3. OpenSumi 與市面主流框架的區(qū)別

          我們?cè)谠O(shè)計(jì)初期便對(duì) VS Code 、Theia 的源碼進(jìn)行了深入的學(xué)習(xí),實(shí)現(xiàn)過(guò)程中,為了兼容 VS Code 插件生態(tài),同時(shí)兼容主流編輯器的一些功能及體驗(yàn),部分設(shè)計(jì)及實(shí)現(xiàn)上我們有部分源碼也參考了兩位老師的實(shí)現(xiàn),對(duì)應(yīng)代碼區(qū)塊已標(biāo)注了版權(quán)頭信息。

          1. 與 VS Code 的關(guān)系

          VS Code 作為市場(chǎng)占用率較大的 IDE,其核心為一個(gè) IDE 產(chǎn)品,本質(zhì)上與我們的 框架 屬性存在區(qū)別,整體上是一個(gè) ToC 的產(chǎn)品,開(kāi)發(fā)者進(jìn)行定制的門(mén)檻及成本較高,可自定義的內(nèi)容也比較有限,大部分是通過(guò) 插件 的形式進(jìn)行有限拓展。

          而我們的框架主要是服務(wù)用戶為 ToB 用戶,對(duì)那些需要通過(guò) IDE 框架搭建自有的 CloudIDE / 本地 IDE 產(chǎn)品而又沒(méi)有充足技術(shù)研發(fā)能力的中小企業(yè)是一個(gè)簡(jiǎn)單、便捷的開(kāi)發(fā)選項(xiàng)之一。

          2. 與 Theia 的關(guān)系

          Theia 作為后起之秀,借鑒 VS Code 的一些設(shè)計(jì)理念,經(jīng)過(guò)近幾年的發(fā)展逐步成熟,社區(qū)也相對(duì)繁榮,背靠 Eclipse 基金會(huì),也是 IDE 開(kāi)發(fā)者一個(gè)不錯(cuò)的開(kāi)發(fā)選項(xiàng),與我們的 OpenSumi 框架是存在競(jìng)爭(zhēng)關(guān)系的。

          Theia 本身提供了一種模塊化構(gòu)建 IDE 產(chǎn)品的能力,大部分視圖上的定制絕大部分可通過(guò) 模塊 的方式去進(jìn)行拓展的(這點(diǎn)在我們的 OpenSumi 中也有借鑒相應(yīng)思路),在 插件 能力上兼容了大部分的 VS Code 插件,提供了一份 VS Code 插件 API 的子集能力,部分插件 API (如 debug、language 等)并沒(méi)有完全實(shí)現(xiàn)且也無(wú)后續(xù)持續(xù)性的跟進(jìn)計(jì)劃。

          基于上面這些點(diǎn)上, OpenSumi 框架不僅支持了基礎(chǔ)的 模塊 方式拓展,在 插件 層面上,我們有持續(xù)性跟進(jìn) VS Code 標(biāo)準(zhǔn) API 的規(guī)劃 (當(dāng)前已實(shí)現(xiàn) VS Code 1.16.0 版本 API),同時(shí),我們基于實(shí)現(xiàn)了一個(gè)前端沙箱,提供了一系列的 sumi API 用與通過(guò) 插件 的方式自由地拓展我們的視圖能力,熟悉 React 的前端同學(xué)可以直接上手進(jìn)行前端組件的編寫(xiě),通過(guò)我們提供的豐富的 API 去實(shí)現(xiàn)相應(yīng)的功能視圖。

          4.寫(xiě)在最后

          今天 OpenSumi 的開(kāi)源只是我們邁出的一小步。我們非常期待得到您的反饋,也歡迎使用 OpenSumi 打造一款屬于你自己的 IDE 產(chǎn)品。

          最后,如果你對(duì) OpenSumi 有相應(yīng)的興趣,你也可以來(lái) opensumi/core 倉(cāng)庫(kù)轉(zhuǎn)轉(zhuǎn),為我們的框架貢獻(xiàn)一點(diǎn)你的代碼和意見(jiàn),這將是是我們莫大的榮幸。

          • 項(xiàng)目地址:

          https://github.com/opensumi/core

          • 官網(wǎng)地址:

          http://opensumi.com

          瀏覽 49
          點(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>
                  欧美三级美国一级 | 日韩在线观看视频一区二区三区 | 日韩骚| 做爱小视频网址在线观看 | 成人免费性爱网站 |