`

Spring Cloud 2020 年路线图发布

    博客分类:
  • java
阅读更多

JetBrains 发文介绍了其 IntelliJ 平台 2020 年的路线图。

文章主要介绍了当前 JetBrains 在改进 IntelliJ IDEA 和基于 IntelliJ 平台的 IDE 方面所做的一些工作,主要包括性能和对现代开发工作流的支持两个方面。

改进结果将会在明年发布,其中一些会发布在春季的 2020.1 版本中。

性能

索引性能

与 IDE 性能有关的两个主要痛点是启动性能,索引耗时较长的工具被认为是重量级的。JetBrains 表示,明年关注点将转向索引性能方面。

针对此问题官方采取了多管齐下的方法。首先,支持使用预建的索引块,这样每个用户 IntelliJ 实例都不必执行索引java.lang.String类的工作。

计划明年逐步提供支持,从 JDK 开始,然后涵盖 Maven Central 的库以及其它 IDE 中的解释器和包。同时还在研究支持团队或企业内项目源代码的索引块共享的方法,虽然这一块目前还没有任何具体计划。

其次,计划通过在索引时提供更多的 IDE 操作来减少索引的破坏性。

第三,将检测并通知用户有关索引异常的信息,包括索引花费时间太长的文件、索引重新建立频率太高的文件以及异常导致的索引重建,目的是提供解决这些问题并提高 IDE 在项目上的性能的清晰步骤。

同时也计划支持进行旧性能优化,以确保索引系统不会执行任何不必要的工作并且不会产生可避免的开销。

读/写锁线程模型重新设计

UI 卡死(freeze,冻结)是一个很大的问题。今年虽然已经构建了用于报告此类卡死问题的基础,并进行了架构更改以修复许多相关问题,比如文件系统事件的异步侦听器,但是接下来的一年中,计划迈出更大的一步:将需要写锁定的操作移出 UI 线程。

早在 IntelliJ IDEA 早期就做出了一项架构决定,该决定要求大多数操作需要修改 IDE 的内部数据结构才能在 UI 线程上运行,也就是包括基本操作(将字符插入文档中)和大规模操作(重新命名具有数千种用法的方法)。

这种架构的好处是简单的编程模型,但是明显的缺点是 UI 响应能力在许多情况下都会受到影响。

多年以来,官方一直在寻找方法来解决此架构的局限性,主要是将大型操作拆分为在后台运行并应用于 UI 线程的部分。一个更基本的解决方案是完全摆脱 UI 线程的要求,但是直到最近,还不知道如何在不对自己的代码和第三方插件进行重大重写的情况下做到这一点。

不过现在,JetBrains 已经有了一个允许逐步迁移的架构解决方案,并且正在开始实施。明年将重构 IntelliJ 平台的基本 UI 组件和 API,以采用新的线程模型。一旦新模型稳定并且可以看到改进,将在所有 IDE 中切换到新模型,从而使 UI 平滑且没有滞后。

无需重启即可加载和卸载插件

该特性已经在 IntelliJ IDEA 2019.3 中预览,它使开发者不用重新启动就可以安装主题和键盘映射插件,无缝升级。2020.1 版本中会将此支持扩展到所有类型的插件。

计划将为大部分捆绑的插件提供支持,并且会为第三方插件开发人员提供支持说明。

这项工作更有意义的地方在于,它的最终目标是 IDE 可以根据开发者打开的每个项目的大小自行调整大小,比如仅针对使用 Spring 的项目加载 Spring 插件,仅针对 Angular 项目加载 Angular 插件。

这样如果不使用某项技术,那么就不会看到与此相关的任何 UI 元素,也不会看到支持该技术的插件对性能或内存使用量产生任何影响。

工作流支持

协同编辑

协同编辑是问题跟踪器中投票最高的请求,目前 JetBrains 也在跟进这一功能。在目前采用的方法中,将有一个主 IDE 在运行源代码的计算机上运行,其他用户能够将其 IDE 作为“瘦客户机”连接到主 IDE,而无需直接进行源代码访问。

每个连接的用户都将具有自己的状态,包括打开文件集与插入号位置等,并且可以根据需要选择“跟随”另一个用户。

瘦客户机用户将有权访问核心 IDE 功能,例如导航、补全和调试,但不能访问完整的功能集,例如,在初始版本中,瘦客户端可能无法执行版本控制操作。

协同编辑支持基于 Rider 协议,因此很可能首先在 Rider 中发布,然后扩展到其它 IDE。不过这是一项长期工作,IntelliJ IDEA 2020.1 版本中暂时还是看不是相关成果的。

支持云执行

相当长一段时间以来,许多 JetBrains 产品都支持在容器内运行和调试代码,但是,在不同产品中这些功能的实现之间并没有太多相关性,甚至基本功能(如 Docker 支持)的 UI 也不一致。

现在 JetBrains 引入了目标环境的概念,该概念提供了一种可双向复制文件并在目标环境中启动进程的方法。在 IntelliJ IDEA 2020.1 中,受支持的环境将包括本地计算机、Docker 容器和通过 ssh 连接的计算机。

在后续发行版中,计划统一支持围绕新架构的现有 Docker 和远程解释器。除此之外,还将提供更深入的云集成。

重新设计项目模型

项目模型是 IDE 表示项目结构的方式:哪些文件属于该项目、它们如何相互依赖、使用哪些库……项目模型有一定的局限性,首先,它不支持任意混合不同类型的项目。

例如,AppCode 可以打开 Xcode 项目,Rider 可以打开 Visual Studio 解决方案,但是无法在同一 IDE 框架中打开 Gradle 项目和 Xcode 项目。

其次,项目模型在目录级别上工作,而不在文件级别上,并且它不能表示同一目录中具有不同依赖项的不同文件,这使得很难将诸如 Bazel 之类的构建系统集成到 IDE 中,同时也给其它场景带来了问题。

重新设计的项目模型(内部称为“工作区模型”)将消除这些限制。同时它还带来了其它好处,例如在项目打开期间提高性能、与 Maven 和 Gradle 进行更顺畅的同步以及更好的编程模型。

JetBrains 还表示接下来将发布更多计划信息,详情查看: https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020

分享到:
评论

相关推荐

    Java spring技术路线导图

    Java Spring 技术路线导图是一份详尽的指南,旨在帮助开发者规划和理解Spring框架及其相关生态系统的深度和广度。Spring是Java领域中最受欢迎的开源框架之一,以其强大的功能和灵活性吸引了无数开发人员。它不仅提供...

    Spring Cloud知识点学习思维导图

    Spring Cloud是基于Spring Boot实现的一套微服务框架,它提供了在分布式系统中常见的诸多功能,如服务发现、配置中心、断路器、智能路由、微代理、控制总线、全局锁、分布式会话、集群状态等。这个"Spring Cloud知识...

    微服务中Dubbo和SpringCloud架构技术路线对比

    虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差...

    最新 Spring 框架维护路线图.docx

    总体而言,Spring框架和Spring Cloud的维护路线图强调了持续升级的重要性,以确保最佳的性能和安全性。开发者应该密切关注官方公告,及时更新到最新版本,以利用最新的特性和改进,并确保应用程序的稳定性和安全性。...

    springCloud

    断路器示意图 SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多个层次的服务调用. 下面是微服架构下, 浏览器端通过API访问后台微服务的一个示意图: hystrix 1 一个微服务的超时...

    Java高级架构线路图学习路线内含Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、 高并发等架构技术

    Java高级架构线路图学习路线内含Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、 高并发等架构技术(nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+并发编程锁+项目实战)点击链接加入...

    云原生技术学习路线图_pro

    云原生技术学习路线图_pro 云原生技术学习路线图_pro是一份全面且详细的云原生技术学习路线图,旨在帮助开发者和运维工程师快速掌握云原生技术 Stack。该路线图从基础知识开始,逐步深入到高阶知识,涵盖了云原生...

    Spring Boot框架架构与核心技术详析

    内容概要:介绍了 Spring Boot 相关的技术栈与架构组成,从术语定义开始讲述了 Spring 的配置管理...其他说明:本文还提供了一份详细的学习路线图,以便开发者可以根据自己的需要选择适当的技术来深入研究和发展方向。

    2019全网最细的Java学习路线图

    该路线图吸取了动力节点成立10年来的全部教学经验,旨在分享、专业、便利,让喜爱Java的人,都能平等的学习。 Java基础知识点: 1.Java语言基础:基本语法、数据类型、运算符、控制结构、函数、数组、面向对象编程...

    java自学路线图(超全超详细)

    Java自学路线图 Java 是一门广泛应用的编程语言,掌握 Java 语言需要扎实的基础知识和系统的学习路径。本文将为您提供一份 Java 自学路线图,涵盖 Java 基础篇、数据库学习和框架大部分三个主要部分,旨在帮助您...

    从程序员到CTO的Java技术路线图

    本文将基于标题"从程序员到CTO的Java技术路线图",结合描述,探讨一条从初阶到高级,直至CTO级别的Java学习和发展路径。 首先,作为初级Java程序员,你需要掌握Java的基础语法,包括变量、数据类型、运算符、流程...

    IT后端Java工程师的学习路线图

    以下是一个详细的Java后端工程师学习路线图,涵盖了从基础到进阶的所有关键知识点。 ### 一、基础知识 1. **编程基础**:了解基本的计算机科学概念,如数据结构(数组、链表、树等)、算法和逻辑思维能力。掌握...

    Java学习路线图

    Java学习路线图是一个精心设计的指导文档,旨在帮助初学者和有一定基础的开发者系统地学习和掌握Java编程语言。这份路线图涵盖了从基础知识到高级概念的全方面内容,旨在为学习者提供一条清晰、高效的进阶路径。下面...

    02_学习路线图.zip

    在IT行业中,学习路线图是指导初学者或有经验的开发者系统性地掌握某一领域知识的重要工具。"02_学习路线图.zip"文件很可能包含了这样一份详细的指导文档,旨在帮助用户规划他们的学习路径,特别是在信息技术的某个...

    Java学习路线图.zip

    Java学习路线图.zip是一个压缩包,包含了帮助初学者系统学习Java编程语言的资源。这个路线图旨在为初学者提供一个清晰、逐步的学习路径,确保他们能够快速掌握Java的基础,并逐步进阶到更高级的主题。以下是对Java...

    浙江大学云计算路线图.pdf

    在云计算领域,开源技术的应用非常广泛,例如Docker、Spring Cloud、Hadoop、Kubernetes等。这些技术不仅减少了对专有技术的依赖,降低了运维的复杂性,还可以通过社区共享来获得持续的更新和安全维护。 云计算路线...

    JAVA后端架构师成长路线图-2023版.pdf

    JAVA后端架构师成长路线图-2023版 本资源是一个全面、系统的JAVA后端架构师成长路线图,旨在帮助Java程序员快速成为架构师。该资源通过访谈数十位一线大厂架构师,了解他们的成长历程,了解最新的企业技术,抽象出...

    j2ee学习路径 路线图

    以下是一个详细且全面的J2EE学习路径路线图: 1. **基础篇** - **Java语言基础**:首先,你需要熟悉Java的基础语法,包括数据类型、运算符、流程控制、面向对象概念(类、对象、继承、封装、多态)等。 - **...

    java学习路线图 最新.html

    java全栈学习教程最新版,零基础自学java教程,java初级中级高级,j2se,前端,j2ee,java框架,java实践项目,java学习路线,ssm,ssh,springboot,springcloud,工具和中间件

    2024年成为Java开发人员的路线图.zip

    在2024年成为一名成功的Java开发人员,你需要掌握一...按照这个路线图,通过系统学习和实践,你将能够逐步成长为一名优秀的Java开发人员,适应2024年的技术需求。记得定期更新知识,保持对最新技术和最佳实践的敏感度。

Global site tag (gtag.js) - Google Analytics