前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IntelliJ IDEA 2023.1正式发布,Maven项目大提速&支持Apache Dubbo

IntelliJ IDEA 2023.1正式发布,Maven项目大提速&支持Apache Dubbo

作者头像
YourBatman
发布2023-04-06 09:22:56
1.6K0
发布2023-04-06 09:22:56
举报
文章被收录于专栏:BAT的乌托邦BAT的乌托邦

你好,我是YourBatman:做爱做之事❣交配交之人。

📚前言

一年一个大版本,共计3个中型版本,北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩,吃肉之前,可以先把这几碗汤干了,更有助于消化(每篇都很顶哦):

先来张启动图感受一下:

这是2023.1版本的启动图:

✍正文

官方对此版本的新变化总结:在 IntelliJ IDEA 2023.1中,我们根据用户的宝贵反馈对新UI做出了大量改进。 我们还实现了性能增强,从而更快导入 Maven,以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程。IntelliJ IDEA Ultimate 现在支持 Spring Security 匹配器和请求映射的导航。

🌈what’s new(新特性)

JetBrains 去年就已宣布了新UI(可参考笔者上篇IDEA文章),并表示要逐步且彻底改造新UI,为开发者提供更现代、可定制和用户友好的界面,从而改进整体的编码体验。

除了UI之外,我们再来看看本次版本的主要新特性Feature。

导入Maven项目大提速

官方数据,提速约40%:

笔者亲测(导入的Spring Boot项目为例):肉眼可见的提速了,导入的项目越大对比越明显。至于有没有达到官宣的提速40%,因项目而异。但,那不重要,实实在在的更快了就行。

支持Apache Dubbo

国人之光

IntelliJ IDEA官方提供插件来支持Apache Dubbo项目的开发,提供了内置支持的更友好的提示,足以见得Apache Dubbo的影响力还不错了,这是来自神秘东方力量。

虽然现在并非默认就内置此插件,需要手动下载。但已经很不错了。毕竟提名即肯定!

Compact Mode(紧凑模式)

新UI自上个版本(2022.3)就有了,笔者也是一直在使用。IDEA会持续优化它,Compact Mode(紧凑模式)这个新特性就只针对新UI:

Tips:紧凑模式默认并未开启,需要你手动设置启用(如下图)

紧凑模式简直就是命中了笔者的G点,大爱。放两张对比图自行感受下:

紧凑模式

普通模式

降低了工具栏和工具窗口标题的高度、缩小了间距和填充,图标和按钮也都缩小了一番,一致性非常好也非常和谐,很适合喜欢紧凑型布局的同学,比如我。

编辑区的可视区域又大了一丢丢,似乎效率又能提升一咪咪了?

支持Project的多tab选项卡

作为一个Javaer,打开5+甚至10+个工程乃稀疏平常之事,当你查看所有窗口想查找到某个之时,看到的就是一个字:,所以定位稍显困难。

IDEA团队当然也意识到了这个问题,所以此版本在同一个窗口对多Project提供了多tab支持,如下图:

这样多个project只需占据一个窗口即可,清爽多了:细心的你会发现窗口名显示为了与project无关的IntelliJ IDEA

其实早在上上个版本(2022.2)是支持project多tab页的,只是在2022.3版本给“弄没了”,现在可谓是又回归了。

PS:官方说此功能目前只支持Mac版本,不清楚Windows现在有没有,体验过的同学可分享下

值得一提的是:笔者其实并不喜欢此功能,原因是project的tab之间切换不方便:没有找到切换快捷键,得用鼠标点击,效率远不及Mac窗口切换那么丝滑高效。期待下个版本能解决此事:

  1. 提供project的tab之间切换的快捷键
  2. 设置项里可打开/关闭此功能

在项目打开时更早提供IDE功能

IntelliJ IDEA的代码提示、各种检索功能都是基于index索引:IDE在打开项目时会扫描项目将必要的索引加入到内存(知道IDEA为何这么吃内存了吧),从而提供更好的代码提示服务。因此在打开项目之初都能看到这样的进度条:

项目越大,Scanning的时间越长。在之前版本里:Scanning files to index完成之前,用户是没法使用代码提示、各种检索功能的,程序员此时能做的只有等待。

此版本后,这一点得到了改善:Scanning结果逐步交付。说人话:即使Scanning还没100%完成,IDE的一些功能也可使用了。解释详细点:如果你正使用的功能依赖的index已完成,就可正常使用,而无需等到所有index完成后再使用。

在新版本里,检索时你可能看到如下图字样,也就是这个原因。

增强的Java检查

IDE除了检查基本语法确保编译正常外,还会帮助对代码进行规范性、合理性检查,目的是帮助开发者提升程序性能,以及保持代码的干净。举几个例子:

优化冗余的String操作

contentEquals是JDK 5的方法,对比较CharSequence时的最佳选择,比equals方法更优。比如本例中,如果使用equals方法,sb先执行toString(),而StringBuilder的toString()方法执行了new操作,多产生了一个String中间对象:

这必然就降低了一丢丢性能,而contentEquals就无此担忧(至于原理,感兴趣的同学可去看看String#contentEquals源码)。

以后String和**CharSequence**类型进行相等判断时,推荐使用**contentEquals()**方法,比equals方法更好。

方法同一返回值检查

此方法虽然有两个return分支,但返回的都是2,新版IDEA就会提示你可以优化优化了。

支持多返回值的Extract Method

将多行代码提取到一个方法里,是开发中借助IDEA常见的操作,合理使用能把逻辑编排得更清晰,降低理解成本。但是,如果Extract Method时遇到需要多个返回值,在老版本IDEA里是不允许你提取,而这在新版本IDEA可以了,它会引导你分步进行。

代码语言:javascript
复制
private void demoFun() {
    // 提取 -- 计算结果start
    int a =1;
    int b =2;

    int sum = a + b;
    int total = a * b;
    // 提取 -- 计算结果end

    // 拿到两个结果后再计算、输出
    System.out.println(sum + total);
}

选中需要提取到方法内的代码,按下command + option + m即可按照IDEA的提示完成方法提取操作

  1. 若多个返回值,则先搞个private static的内部静态类来装载结果
  2. 将选中的代码放到新提取的方法体内,返回刚定义的静态内部类对象

结果如下:

值得分享的是:方法提取固然好,但使用不当一方面反而会让逻辑变得更错中复杂、晦涩难懂,另一方面也会暴露自己的能力短板,造成破功,因此建议谨慎为之。

全IDEA缩放

如果你做分享较多,或者是个UP主,这个功能是很赞的。

当然你也可以在顶部菜单栏里快速调整:

和之前版本的IDEA不同:它是全IDEA缩放。很适合想整个IDEA同比例放大的情况,如团队分享时、当UP主直播编码时。

VM Options字段中的自动补全

这个功能还不错,早就应该提供了,不然每次都得CV,效率不高。

虽然好用,但亲测提示得并不全,有的还是得CV,但聊胜于无。

🚀其它升级

  • 支持Java 20
  • 支持Spring Security 6
  • 更好的支持Scala 3
  • 添加了预定义新项目的 Actions on Save 行为的选项
  • 针对Windows系统:当Microsoft Defender运行时,IntelliJ IDEA 现在建议重新配置防病毒设置以获得更好的 IDE 性能
  • 检索:支持使用正则表达式来创建搜索和替换
  • Markdown格式文件功能增强了:如intention action和Fill Paragraph功能,以及专门的Markdown preferences管理页

✍总结

每次软件升级,我的建议就一个字:。大不了bug多再回退嘛,而这明显是小概率事件。

最后呼吁一句:m系列处理器 MacOS 13.3,屏闪问题什么时候能彻底解决?

升级到新版本IntelliJ IDEA后有所改善,但依旧没有根治,有木有同样情况的同学?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📚前言
  • ✍正文
    • 🌈what’s new(新特性)
      • 导入Maven项目大提速
      • 支持Apache Dubbo
      • Compact Mode(紧凑模式)
      • 支持Project的多tab选项卡
      • 在项目打开时更早提供IDE功能
      • 增强的Java检查
      • 支持多返回值的Extract Method
      • 全IDEA缩放
      • VM Options字段中的自动补全
      • 🚀其它升级
  • ✍总结
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档