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

          IntelliJ 平臺(tái) 2020 年路線圖

          共 2675字,需瀏覽 6分鐘

           ·

          2019-12-26 23:25

          轉(zhuǎn)自:OSCHINA

          www.oschina.net/news/112204/intellij-platform-roadmap-for-2020


          JetBrains 發(fā)文介紹了其 IntelliJ 平臺(tái) 2020 年的路線圖。


          文章主要介紹了當(dāng)前 JetBrains 在改進(jìn) IntelliJ IDEA 和基于 IntelliJ 平臺(tái)的 IDE 方面所做的一些工作,主要包括性能和對(duì)現(xiàn)代開(kāi)發(fā)工作流的支持兩個(gè)方面。改進(jìn)結(jié)果將會(huì)在明年發(fā)布,其中一些會(huì)發(fā)布在春季的 2020.1 版本中。


          b5033b78f73a43c1dca1f5ff907bab13.webp


          性能


          索引性能


          與 IDE 性能有關(guān)的兩個(gè)主要痛點(diǎn)是啟動(dòng)性能,索引耗時(shí)較長(zhǎng)的工具被認(rèn)為是重量級(jí)的。JetBrains 表示,明年關(guān)注點(diǎn)將轉(zhuǎn)向索引性能方面。



          針對(duì)此問(wèn)題官方采取了多管齊下的方法。首先,支持使用預(yù)建的索引塊,這樣每個(gè)用戶 IntelliJ 實(shí)例都不必執(zhí)行索引java.lang.String類的工作。計(jì)劃明年逐步提供支持,從 JDK 開(kāi)始,然后涵蓋 Maven Central 的庫(kù)以及其它 IDE 中的解釋器和包。同時(shí)還在研究支持團(tuán)隊(duì)或企業(yè)內(nèi)項(xiàng)目源代碼的索引塊共享的方法,雖然這一塊目前還沒(méi)有任何具體計(jì)劃。



          其次,計(jì)劃通過(guò)在索引時(shí)提供更多的 IDE 操作來(lái)減少索引的破壞性。


          第三,將檢測(cè)并通知用戶有關(guān)索引異常的信息,包括索引花費(fèi)時(shí)間太長(zhǎng)的文件、索引重新建立頻率太高的文件以及異常導(dǎo)致的索引重建,目的是提供解決這些問(wèn)題并提高 IDE 在項(xiàng)目上的性能的清晰步驟。


          同時(shí)也計(jì)劃支持進(jìn)行舊性能優(yōu)化,以確保索引系統(tǒng)不會(huì)執(zhí)行任何不必要的工作并且不會(huì)產(chǎn)生可避免的開(kāi)銷。


          讀/寫鎖線程模型重新設(shè)計(jì)


          UI 卡死(freeze,凍結(jié))是一個(gè)很大的問(wèn)題。今年雖然已經(jīng)構(gòu)建了用于報(bào)告此類卡死問(wèn)題的基礎(chǔ),并進(jìn)行了架構(gòu)更改以修復(fù)許多相關(guān)問(wèn)題,比如文件系統(tǒng)事件的異步偵聽(tīng)器,但是接下來(lái)的一年中,計(jì)劃邁出更大的一步:將需要寫鎖定的操作移出 UI 線程。



          早在 IntelliJ IDEA 早期就做出了一項(xiàng)架構(gòu)決定,該決定要求大多數(shù)操作需要修改 IDE 的內(nèi)部數(shù)據(jù)結(jié)構(gòu)才能在 UI 線程上運(yùn)行,也就是包括基本操作(將字符插入文檔中)和大規(guī)模操作(重新命名具有數(shù)千種用法的方法)。這種架構(gòu)的好處是簡(jiǎn)單的編程模型,但是明顯的缺點(diǎn)是 UI 響應(yīng)能力在許多情況下都會(huì)受到影響。



          多年以來(lái),官方一直在尋找方法來(lái)解決此架構(gòu)的局限性,主要是將大型操作拆分為在后臺(tái)運(yùn)行并應(yīng)用于 UI 線程的部分。一個(gè)更基本的解決方案是完全擺脫 UI 線程的要求,但是直到最近,還不知道如何在不對(duì)自己的代碼和第三方插件進(jìn)行重大重寫的情況下做到這一點(diǎn)。



          不過(guò)現(xiàn)在,JetBrains 已經(jīng)有了一個(gè)允許逐步遷移的架構(gòu)解決方案,并且正在開(kāi)始實(shí)施。明年將重構(gòu) IntelliJ 平臺(tái)的基本 UI 組件和 API,以采用新的線程模型。一旦新模型穩(wěn)定并且可以看到改進(jìn),將在所有 IDE 中切換到新模型,從而使 UI 平滑且沒(méi)有滯后。


          無(wú)需重啟即可加載和卸載插件


          該特性已經(jīng)在 IntelliJ IDEA 2019.3 中預(yù)覽,它使開(kāi)發(fā)者不用重新啟動(dòng)就可以安裝主題和鍵盤映射插件,無(wú)縫升級(jí)。2020.1 版本中會(huì)將此支持?jǐn)U展到所有類型的插件。計(jì)劃將為大部分捆綁的插件提供支持,并且會(huì)為第三方插件開(kāi)發(fā)人員提供支持說(shuō)明。



          這項(xiàng)工作更有意義的地方在于,它的最終目標(biāo)是 IDE 可以根據(jù)開(kāi)發(fā)者打開(kāi)的每個(gè)項(xiàng)目的大小自行調(diào)整大小,比如僅針對(duì)使用 Spring 的項(xiàng)目加載 Spring 插件,僅針對(duì) Angular 項(xiàng)目加載 Angular 插件。這樣如果不使用某項(xiàng)技術(shù),那么就不會(huì)看到與此相關(guān)的任何 UI 元素,也不會(huì)看到支持該技術(shù)的插件對(duì)性能或內(nèi)存使用量產(chǎn)生任何影響。


          工作流支持


          協(xié)同編輯


          協(xié)同編輯是問(wèn)題跟蹤器中投票最高的請(qǐng)求,目前 JetBrains 也在跟進(jìn)這一功能。在目前采用的方法中,將有一個(gè)主 IDE 在運(yùn)行源代碼的計(jì)算機(jī)上運(yùn)行,其他用戶能夠?qū)⑵?IDE 作為“瘦客戶機(jī)”連接到主 IDE,而無(wú)需直接進(jìn)行源代碼訪問(wèn)。每個(gè)連接的用戶都將具有自己的狀態(tài),包括打開(kāi)文件集與插入號(hào)位置等,并且可以根據(jù)需要選擇“跟隨”另一個(gè)用戶。



          瘦客戶機(jī)用戶將有權(quán)訪問(wèn)核心 IDE 功能,例如導(dǎo)航、補(bǔ)全和調(diào)試,但不能訪問(wèn)完整的功能集,例如,在初始版本中,瘦客戶端可能無(wú)法執(zhí)行版本控制操作。


          協(xié)同編輯支持基于 Rider 協(xié)議,因此很可能首先在 Rider 中發(fā)布,然后擴(kuò)展到其它 IDE。不過(guò)這是一項(xiàng)長(zhǎng)期工作,IntelliJ IDEA 2020.1 版本中暫時(shí)還是看不是相關(guān)成果的。



          支持云執(zhí)行


          相當(dāng)長(zhǎng)一段時(shí)間以來(lái),許多 JetBrains 產(chǎn)品都支持在容器內(nèi)運(yùn)行和調(diào)試代碼,但是,在不同產(chǎn)品中這些功能的實(shí)現(xiàn)之間并沒(méi)有太多相關(guān)性,甚至基本功能(如 Docker 支持)的 UI 也不一致。


          現(xiàn)在 JetBrains 引入了目標(biāo)環(huán)境的概念,該概念提供了一種可雙向復(fù)制文件并在目標(biāo)環(huán)境中啟動(dòng)進(jìn)程的方法。在 IntelliJ IDEA 2020.1 中,受支持的環(huán)境將包括本地計(jì)算機(jī)、Docker 容器和通過(guò) ssh 連接的計(jì)算機(jī)。



          在后續(xù)發(fā)行版中,計(jì)劃統(tǒng)一支持圍繞新架構(gòu)的現(xiàn)有 Docker 和遠(yuǎn)程解釋器。除此之外,還將提供更深入的云集成。



          重新設(shè)計(jì)項(xiàng)目模型


          項(xiàng)目模型是 IDE 表示項(xiàng)目結(jié)構(gòu)的方式:哪些文件屬于該項(xiàng)目、它們?nèi)绾蜗嗷ヒ蕾?、使用哪些?kù)……項(xiàng)目模型有一定的局限性,首先,它不支持任意混合不同類型的項(xiàng)目。例如,AppCode 可以打開(kāi) Xcode 項(xiàng)目,Rider 可以打開(kāi) Visual Studio 解決方案,但是無(wú)法在同一 IDE 框架中打開(kāi) Gradle 項(xiàng)目和 Xcode 項(xiàng)目。其次,項(xiàng)目模型在目錄級(jí)別上工作,而不在文件級(jí)別上,并且它不能表示同一目錄中具有不同依賴項(xiàng)的不同文件,這使得很難將諸如 Bazel 之類的構(gòu)建系統(tǒng)集成到 IDE 中,同時(shí)也給其它場(chǎng)景帶來(lái)了問(wèn)題。



          重新設(shè)計(jì)的項(xiàng)目模型(內(nèi)部稱為“工作區(qū)模型”)將消除這些限制。同時(shí)它還帶來(lái)了其它好處,例如在項(xiàng)目打開(kāi)期間提高性能、與 Maven 和 Gradle 進(jìn)行更順暢的同步以及更好的編程模型。



          JetBrains 還表示接下來(lái)將發(fā)布更多計(jì)劃信息,詳情查看:


          https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020



          有道無(wú)術(shù),術(shù)可成;有術(shù)無(wú)道,止于術(shù)

          歡迎大家關(guān)注Java之道公眾號(hào)


          好文章,我在看??

          瀏覽 30
          點(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>
                  永久成人免费 | 日韩美穴 | www.wuma | 大香蕉亚洲在 | 日韩无码小电影 |