book's People
book's Issues
船新 IDEA 2020.1真香体验!Java开发首席生产力担当 - CodeSheep的技术分享 - SegmentFault 思否 · 语雀
就在前几天,Java软件开发神器 IDEA 2020.1 新版发布了:
我第一时间在机子上更新并体验了几天,感觉还是有点香的!怎么硕呢,体验完新特性之后,不由的感叹一句:IDEA现在真的是越来越智能,越来越懂开发者了。
UI/界面升级
1、界面支持中文了
汉化后的效果就是这个憨样子:
各花入各眼,好坏就不做评判了,可以根据自己的喜好来调节。
必须要说的是,这个中文汉化不是软件原生支持,而是需要下载安装一个名为Chinese (Simplified) Language Pack
的插件,好在这个插件就是JetBrains
官方提供的
2、导航栏进化
现在代码层级导航栏这里,可以直接定位到文件中的某个具体方法或者字段了,这个的确很高效
3、支持编辑器内的Javadocs
渲染
以前在IDEA中阅读Javadoc
非常不方便,因为处于原始状态的Javadoc
中含有各种标记,不好读。这次新版的IDEA 2020新增了Javadocs
的渲染功能,点击左边的小按钮就可以启用
渲染后的Javadoc
就非常直观易读了,而且还可以调整字号
4、新增主题和字体
首先默认支持了JetBrains
自家的新JetBrains Mono
字体,这没啥可说的,之前就体验过了,详细可参考前文《试水JetBrains官方新编程字体,真香!》
然后则是采用了统一的IntelliJ Light
主题,而且该主题已经在不同的操作系统中完全统一了
喜不喜欢看大家个人习惯了。
5、船新的LightEdit模式
LightEdit
,顾名思义,轻量级的代码编辑。
是的,这次更新的IDEA支持打开单个代码文件进行编辑,而无需打开整个项目。文件可以在单独的编辑窗口打开,而且该窗口可以和其他(项目)窗口共存。就像这样:
更强大的是,直接支持快捷打开这个单文件所在的完整项目:
甚至还可以通过命令行来打开单文件,这相当可以了:
6、支持“禅”模式
现在的这个代码展示模式有够丰富了,支持四种了:
当然,禅模式是最彻底的,一开这个模式,整个世界都清净了...
7、终端支持分栏了
现在可以随意地将IDEA自带的终端进行横竖分栏,非常方便
支持直接IDEA里安装JDK和Git
很多小伙伴交流说自己JDK环境好像装的有问题,实验各种出问题。为了这个事,强迫症都快犯了,很烦。
从IntelliJ IDEA 2020.1开始,我们可以直接在创建项目时,直接从IDEA上下载并设置JDK环境,很方便了。
我特地实验了一下,在IDEA里面下载安装了个Open JDK 14,没毛病,好用,切换也很方便。
除此之外,IDEA还直接支持Git的安装,i了i了
支持Java 14新特性
前段时间Java 14发布,加入了一些新特性,这次IDEA 2020.1迅速跟进,支持了Java 14的一些新特性,举两个典型的例子。
1、instanceof
用法增强
老的Java版本中,对于instanceof语法,我们一般都是这样用的:
private void test( Object obj ) { if( obj instanceof String ) { String str = (String) obj; System.out.println( str.isEmpty() ); } }
而Java 14对instanceof
用法做了增强,我们借助全新的IDEA 2020
,可以快捷的将上面的代码自动重构成如下所示:
所以最终变成了这个亚子:
private void test( Object obj ) { if( obj instanceof String str ) { System.out.println( str.isEmpty() ); } }
2、record
新语法支持
Java 14新增了record
新语法,record
的词面意思就是 “记录”,主要用于形式化的固定记录,这在以前主要就是通过 不可变类来实现的,举个例子吧。
比如我们定义一个不可变的日志记录类LogRecord
,里面包含日志ID(id
),日志时间(date
),日志详情(detail
),按照老的做法,只能使用class
进行定义:
public final class LogRecord { private final int id; private final LocalDate date; private final String detail; public LogRecord(int id, LocalDate date, String detail) { this.id = id; this.date = date; this.detail = detail; } public int getId() { return id; } public LocalDate getDate() { return date; } public String getDetail() { return detail; } @OverRide public String toString() { return "LogRecord{" + "id=" + id + ", date=" + date + ", detail='" + detail + '\'' + '}'; } @OverRide public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; LogRecord logRecord = (LogRecord) o; return id == logRecord.id && Objects.equals(date, logRecord.date) && Objects.equals(detail, logRecord.detail); } @OverRide public int hashCode() { return Objects.hash(id, date, detail); } }
Java 14认为上面这种final
类型class
的定义的套路是完全固定的,写了很多固定套路的代码,包括:构造函数、Getter
方法、toString()
方法、hashCode()
和 equals()
方法等等,十分无聊。
为此Java 14推出了全新的record
语法,只需一行代码即可搞定,十分方便:
record LogRecord( int id, LocalDate date, String detail ) { }
这次IDEA 2020中就已经完全支持recod
语法了,并且还可以自动显式地为record
生成各种方法:
支持更加智能的检查和重构
1、支持就地更改方法签名
什么意思呢?举个例子。
当你想直接修改某个已有方法的参数时,不管三七二十一,上来可以直接修改方法签名,然后点击更新,接下来的所有步骤IDEA可以帮你完成。
2、智能分析日期字符串格式
比如这个例子中,我格式化一个日期时,无意将年月日yyyy/MM/dd
字符串写成了yyyy/mm/dd
,中间的MM
大小写忘了,IDEA自动给我们分析出来了:
3、智能语法和拼写检查器
这个功能得配合Grazie
这个插件一起使用,该插件是一个全面的语法、拼写、以及样式检查工具。
比如,这地方我小手一抖,写错了英语语法,它立马帮我们提示出来了
增强调试功能
1、数据流分析辅助,可以直接预测下面的运行结果
IDEA 2020.1直接将数据流分析添加到JVM调试器。当程序在断点处停止时,IDEA可以根据程序的当前状态运行数据流分析,来预测下一步将要发生什么。
2、调试时,支持固定对象字段
当一个对象字段过多,以致于调试时很难找到需要的字段时,我们可以直接将其置顶,便于查看。
3、以文件形式存储运行配置
新版IDEA支持直接将当前的调试/运行的配置存档,并在以后选择重新加载
更加先进的版本控制
第一个大的改进就是重新设计了代码提交的窗口,而不再是以前老的那种模态化弹窗式窗口了。这样一来,提交代码时的代码比对,编辑会更加舒适。
第二个改进就是支持搜索、刷新本地以及远端的代码分支:
另外,这个历史日志留痕也是蛮好看的:
Maven和Gradle导入更新
此处就以Maven工具为例,编辑器右上角出现的是一个浮动通知。修改构建文件后,可以使用这个迷你的通知图标来加载更改。
数据库处理增强
新版IDEA内置的数据库管理,现在可以支持将数据导出到Excel(.xlsx)
文件,并且直接在编辑器中以文本形式查看
增强的HTTP Client
升级之后的HTTP Client
更加智能,典型的比如:支持自动匹配和补全
而且还可以在Contoller
代码的左侧,通过快捷的方式来自动生成HTTP请求文件
而且对于Spring项目,还可以在底部的Endpoints
窗口里来快捷生成HTTP请求文件。
其他改进
1、对各种框架的支持改进,比如:Spring WebFlux/Selenium/JMS/Micronaut/RxJava
等等
2、对Docker/Kubernetes
的支持改进
3、对Scala 3
的支持
4、对Android Volley
的支持
5、对JavaScript
的改进和支持
小结
体验一番之后发现,新版的IDEA 2020.1肉眼可见的改进还是非常多的,挺香。
不过还有一个实际的问题就是:我一升级之后发现一大票的插件都不能用了,所以周边支持的兼容性还得再等等。
https://segmentfault.com/a/1190000022376903?utm_source=tag-newest
https://www.yuque.com/shenjingwa-jfzwb/cwgnzy/idea2020.1
船新 IDEA 2020.1真香体验!Java开发首席生产力担当 - CodeSheep的技术分享 - SegmentFault 思否 · 语雀
就在前几天,Java软件开发神器 IDEA 2020.1 新版发布了:
我第一时间在机子上更新并体验了几天,感觉还是有点香的!怎么硕呢,体验完新特性之后,不由的感叹一句:IDEA现在真的是越来越智能,越来越懂开发者了。
UI/界面升级
1、界面支持中文了
汉化后的效果就是这个憨样子:
各花入各眼,好坏就不做评判了,可以根据自己的喜好来调节。
必须要说的是,这个中文汉化不是软件原生支持,而是需要下载安装一个名为Chinese (Simplified) Language Pack
的插件,好在这个插件就是JetBrains
官方提供的
2、导航栏进化
现在代码层级导航栏这里,可以直接定位到文件中的某个具体方法或者字段了,这个的确很高效
3、支持编辑器内的Javadocs
渲染
以前在IDEA中阅读Javadoc
非常不方便,因为处于原始状态的Javadoc
中含有各种标记,不好读。这次新版的IDEA 2020新增了Javadocs
的渲染功能,点击左边的小按钮就可以启用
渲染后的Javadoc
就非常直观易读了,而且还可以调整字号
4、新增主题和字体
首先默认支持了JetBrains
自家的新JetBrains Mono
字体,这没啥可说的,之前就体验过了,详细可参考前文《试水JetBrains官方新编程字体,真香!》
然后则是采用了统一的IntelliJ Light
主题,而且该主题已经在不同的操作系统中完全统一了
喜不喜欢看大家个人习惯了。
5、船新的LightEdit模式
LightEdit
,顾名思义,轻量级的代码编辑。
是的,这次更新的IDEA支持打开单个代码文件进行编辑,而无需打开整个项目。文件可以在单独的编辑窗口打开,而且该窗口可以和其他(项目)窗口共存。就像这样:
更强大的是,直接支持快捷打开这个单文件所在的完整项目:
甚至还可以通过命令行来打开单文件,这相当可以了:
6、支持“禅”模式
现在的这个代码展示模式有够丰富了,支持四种了:
当然,禅模式是最彻底的,一开这个模式,整个世界都清净了...
7、终端支持分栏了
现在可以随意地将IDEA自带的终端进行横竖分栏,非常方便
支持直接IDEA里安装JDK和Git
很多小伙伴交流说自己JDK环境好像装的有问题,实验各种出问题。为了这个事,强迫症都快犯了,很烦。
从IntelliJ IDEA 2020.1开始,我们可以直接在创建项目时,直接从IDEA上下载并设置JDK环境,很方便了。
我特地实验了一下,在IDEA里面下载安装了个Open JDK 14,没毛病,好用,切换也很方便。
除此之外,IDEA还直接支持Git的安装,i了i了
支持Java 14新特性
前段时间Java 14发布,加入了一些新特性,这次IDEA 2020.1迅速跟进,支持了Java 14的一些新特性,举两个典型的例子。
1、instanceof
用法增强
老的Java版本中,对于instanceof语法,我们一般都是这样用的:
private void test( Object obj ) { if( obj instanceof String ) { String str = (String) obj; System.out.println( str.isEmpty() ); } }
而Java 14对instanceof
用法做了增强,我们借助全新的IDEA 2020
,可以快捷的将上面的代码自动重构成如下所示:
所以最终变成了这个亚子:
private void test( Object obj ) { if( obj instanceof String str ) { System.out.println( str.isEmpty() ); } }
2、record
新语法支持
Java 14新增了record
新语法,record
的词面意思就是 “记录”,主要用于形式化的固定记录,这在以前主要就是通过 不可变类来实现的,举个例子吧。
比如我们定义一个不可变的日志记录类LogRecord
,里面包含日志ID(id
),日志时间(date
),日志详情(detail
),按照老的做法,只能使用class
进行定义:
public final class LogRecord { private final int id; private final LocalDate date; private final String detail; public LogRecord(int id, LocalDate date, String detail) { this.id = id; this.date = date; this.detail = detail; } public int getId() { return id; } public LocalDate getDate() { return date; } public String getDetail() { return detail; } @OverRide public String toString() { return "LogRecord{" + "id=" + id + ", date=" + date + ", detail='" + detail + '\'' + '}'; } @OverRide public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; LogRecord logRecord = (LogRecord) o; return id == logRecord.id && Objects.equals(date, logRecord.date) && Objects.equals(detail, logRecord.detail); } @OverRide public int hashCode() { return Objects.hash(id, date, detail); } }
Java 14认为上面这种final
类型class
的定义的套路是完全固定的,写了很多固定套路的代码,包括:构造函数、Getter
方法、toString()
方法、hashCode()
和 equals()
方法等等,十分无聊。
为此Java 14推出了全新的record
语法,只需一行代码即可搞定,十分方便:
record LogRecord( int id, LocalDate date, String detail ) { }
这次IDEA 2020中就已经完全支持recod
语法了,并且还可以自动显式地为record
生成各种方法:
支持更加智能的检查和重构
1、支持就地更改方法签名
什么意思呢?举个例子。
当你想直接修改某个已有方法的参数时,不管三七二十一,上来可以直接修改方法签名,然后点击更新,接下来的所有步骤IDEA可以帮你完成。
2、智能分析日期字符串格式
比如这个例子中,我格式化一个日期时,无意将年月日yyyy/MM/dd
字符串写成了yyyy/mm/dd
,中间的MM
大小写忘了,IDEA自动给我们分析出来了:
3、智能语法和拼写检查器
这个功能得配合Grazie
这个插件一起使用,该插件是一个全面的语法、拼写、以及样式检查工具。
比如,这地方我小手一抖,写错了英语语法,它立马帮我们提示出来了
增强调试功能
1、数据流分析辅助,可以直接预测下面的运行结果
IDEA 2020.1直接将数据流分析添加到JVM调试器。当程序在断点处停止时,IDEA可以根据程序的当前状态运行数据流分析,来预测下一步将要发生什么。
2、调试时,支持固定对象字段
当一个对象字段过多,以致于调试时很难找到需要的字段时,我们可以直接将其置顶,便于查看。
3、以文件形式存储运行配置
新版IDEA支持直接将当前的调试/运行的配置存档,并在以后选择重新加载
更加先进的版本控制
第一个大的改进就是重新设计了代码提交的窗口,而不再是以前老的那种模态化弹窗式窗口了。这样一来,提交代码时的代码比对,编辑会更加舒适。
第二个改进就是支持搜索、刷新本地以及远端的代码分支:
另外,这个历史日志留痕也是蛮好看的:
Maven和Gradle导入更新
此处就以Maven工具为例,编辑器右上角出现的是一个浮动通知。修改构建文件后,可以使用这个迷你的通知图标来加载更改。
数据库处理增强
新版IDEA内置的数据库管理,现在可以支持将数据导出到Excel(.xlsx)
文件,并且直接在编辑器中以文本形式查看
增强的HTTP Client
升级之后的HTTP Client
更加智能,典型的比如:支持自动匹配和补全
而且还可以在Contoller
代码的左侧,通过快捷的方式来自动生成HTTP请求文件
而且对于Spring项目,还可以在底部的Endpoints
窗口里来快捷生成HTTP请求文件。
其他改进
1、对各种框架的支持改进,比如:Spring WebFlux/Selenium/JMS/Micronaut/RxJava
等等
2、对Docker/Kubernetes
的支持改进
3、对Scala 3
的支持
4、对Android Volley
的支持
5、对JavaScript
的改进和支持
小结
体验一番之后发现,新版的IDEA 2020.1肉眼可见的改进还是非常多的,挺香。
不过还有一个实际的问题就是:我一升级之后发现一大票的插件都不能用了,所以周边支持的兼容性还得再等等。
https://segmentfault.com/a/1190000022376903?utm_source=tag-newest
https://www.yuque.com/shenjingwa-jfzwb/cwgnzy/idea2020.1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.