发布时间:2025-05-18
浏览次数:0
发文介绍了其 平台 2020 年的路线图。
本文重点阐述了目前对于IDEA及其相关平台型集成开发环境所进行的优化升级工作,这些工作主要聚焦于性能提升以及适应现代软件开发流程的需求。
成果的优化版本预计将于来年揭晓,其中部分内容将率先在2020年春季的1.0版本中与大家见面。
性能
索引性能
IDE性能面临两大关键问题,一是启动速度较慢,二是某些索引耗时较长的工具被视作资源消耗大的。据透露,未来一年,我们的关注焦点将转移到提升索引性能上。
官方针对这一问题实施了综合性的策略。一方面,鼓励利用预先构建的索引模块,从而使得每个用户实例无需再进行java.lang类的索引操作。
来年我们将分阶段地提供协助,首先针对 JDK,接着将扩展至 Maven 的库以及其他集成开发环境中的工具和组件。此外,我们还在探索一种方式,以便于团队或企业内部的项目源代码索引块能够实现共享,尽管目前尚无具体的实施计划。
其次,该计划旨在通过在索引过程中增加IDE的操作,以降低索引带来的破坏程度。
第三,需对用户进行索引异常信息的检测与告知,涵盖文件索引耗时过长、索引重建频率过密,以及因异常引发的索引重建等情况;此举措旨在向用户呈现一套清晰的操作步骤,以解决上述问题并优化 IDE 在项目中的运行效率。
同时,我们也打算推动对既有性能的改进,旨在确保索引系统不会进行任何非必要的操作,并且能够避免不必要的成本产生。
读/写锁线程模型重新设计
UI 程序出现停滞或冻结状况,这一问题相当严重。尽管今年我们已建立起一套用于上报此类停滞问题的机制,并对系统架构进行了调整以解决众多类似问题,例如对文件系统事件异步监听器的优化,但明年我们计划采取更为深入的措施:将那些需要执行写锁定的操作从 UI 线程中分离出来。
在IDEA的早期阶段,便确立了一个关键架构选择,这一选择规定,若要在UI线程上执行大部分操作,必须对IDE的内部数据结构进行相应的调整,这涵盖了基础操作,如将字符添加至文档,以及涉及数千次引用的方法重命名等大规模操作。
这种架构的优势在于其编程模型的简便性,然而,它明显的不足之处在于UI的响应速度在多数情况下会受到不利影响。
长期以来,官方持续探索着克服该架构局限性的途径,这主要涉及将大规模操作分解为后台执行并在用户界面线程上应用的部分。一个更为根本的应对策略是彻底摒弃对UI线程的依赖,然而,直至近期,人们仍不清楚如何在无需对自身代码或第三方插件进行大幅修改的前提下实现这一目标。
目前,我们已经确立了一套支持分阶段转移的架构方案,并且该方案的实施工作已启动。来年,我们将对平台的核心用户界面组件及应用程序编程接口进行重构,旨在引入新的线程处理模式。待新模型稳定运行并显现出积极效果后,我们将全面切换至这一新模型,确保在所有集成开发环境中,用户界面运行流畅且无任何延迟。
无需重启即可加载和卸载插件
这一功能在IDEA 2019.3版本中进行了预览展示,它允许开发者无需重启IDEA即可安装主题和键盘映射插件,实现无间断的升级体验。在2020.1版本中,这一支持将被扩展至涵盖所有类型的插件。
本计划将对众多组合插件给予技术支持,同时亦将为第三方插件开发者提供详细的指导资料。
这项工作的独特价值在于,其最终目的是让集成开发环境(IDE)能够根据开发者所打开的项目规模自动调整自身大小,例如,只为那些采用特定插件的项目加载相应的插件,同样地,只为使用另一类插件的项目引入相应的插件。
若不采用该技术,便无法观察到与之对应的任何用户界面组件intellij idea 主题,同时亦无法察觉到该技术所支持的插件对系统性能或内存消耗带来的任何变化。
工作流支持
协同编辑
协同编辑是问题跟踪器中得票最多的功能需求,目前开发团队正在积极推动这一功能的开发。在此过程中,我们计划采用一种方案,即在一个主集成开发环境(IDE)上运行源代码,其他用户则可以将其IDE视为“瘦客户机”来连接到这个主IDE,这样他们就可以使用该IDE进行开发工作intellij idea 主题,而无需直接访问源代码。
每位用户都将拥有独立的个人状态,这涵盖了对文件集的开启以及插入符号的具体位置,同时,用户还可根据个人需求,选择是否要“同步”至其他用户的操作状态。
瘦客户机用户能够使用核心的集成开发环境功能,诸如进行代码导航、自动补全以及调试等,然而,他们无法获得全部的功能,比如在初期版本中,瘦客户端可能不具备进行版本管理的功能。
协同编辑功能依托于Rider协议,故其很可能率先在Rider平台推出,随后逐步推广至其他集成开发环境。然而,这属于一项持续性的任务,在IDEA 2020.1版本中,暂时并未见到相关成果的体现。
支持云执行
在较长的一段时间里,众多产品均能提供在容器中执行代码调试的功能,然而,这些功能在不同产品间的实现并未展现出明显的联系,甚至它们所提供的基本功能(比如支持)的用户界面也存在着显著的差异。
目前,我们提出了目标环境的这一新概念,它允许文件在目标环境中进行双向复制并启动进程。在 IDEA 2020.1 版本中,支持的环境类型将涵盖本地电脑、容器以及通过 SSH 连接的远程计算机。
后续版本中将统一对基于新架构的现有解释器和远程解释器给予支持,并且,还将额外提供更为深入的云服务集成功能。
重新设计项目模型
IDE通过项目模型来展示项目的结构,具体包括哪些文件构成项目、这些文件间的相互依赖关系,以及所使用的库等。然而,项目模型存在一定的限制,首先,它无法支持将不同类型的项目进行随意混合。
您可以在Xcode中打开项目,Rider支持打开解决方案,然而,这两种IDE框架无法实现同时打开项目与Xcode项目。
项目模型仅在目录层级进行操作,不涉及文件层级,且无法体现同一目录内不同文件间的不同依赖关系,这导致将Bazel等构建工具与集成开发环境(IDE)整合变得尤为困难,同时也引发了其他应用场景中的诸多问题。
新设计的项目架构(在内部被称作“工作区架构”)将取消这些限制。此外,它还带来了诸多益处,比如在项目开启过程中提升运行效率、与 Maven 以及其他工具实现更流畅的协同,以及提供更优质的编程体验。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码