2019独角兽企业重金招聘Python工程师标准>>>

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试?

本文转载自:netty技术内幕

3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再次让人眼前一亮:什么,还能这么玩?

下面,我们来快速了解一下 IDEA 2018.1 最新版本给我们带来哪些惊喜

1. stream代码自动生成更智能

IDEA对java代码的自动化生成令人惊叹,一个alt+enter或者alt+/可以省去很多敲打键盘的操作。本次更新对stream api的支持更加智能化,如上图,如果对一个list filer掉指定的type之后,在后续的map操作中,自动给你加上一个cast。

2. while循环优化

IDEA智能检测代码逻辑,将原本丑陋的代码自动改写,while优化也是继承自此理念。上图中展示的是,while if break 逻辑,直接修改成do while,代码颜值和易理解程度明显提升。

3. 优化多余的资源关闭操作

使用过IDEA的同学可能会经常看到代码里面有灰色的代码,这就提示你,这段代码是多余了,不可达的代码,可以删掉,代码更干净整洁。上图中展示的是,当你已经使用了try resource的方式来自动关闭资源,没有必要再手动调用一次close,显示成灰色,alt+enter一键自动删除。

4. 字符串数组自动排序

这个功能也是非常贴心,不得不佩服jetbrain对产品细节的打磨。如果你代码里面有一堆字符串常量,想做一个简单的按字母排序,只需要在数组上按下alter+enter,然后sort conetnt,IDEA会自动排序,秒级完成。

5. 拷贝构造函数完整性提示

拷贝构造函数在实际项目开发过程中也是比较常见的,通过同一个类的对象,生成另外一个对象,这个过程中,如果少set了一个属性,在后续的逻辑中很容易出现NPE。上图展示的是,当你实现拷贝构造函数的时候,忘了拷贝 myFileFiltermyForcedToUseIdeaFileChooser这两个属性,IDEA会给你智能提示,让你修改。

6. postfix支持自定义模板

postfix可以说是IDEA里面最有特色的一大功能,和live template并驾齐驱,完成一些非常快速的操作,关于这两个强大的功能可以翻到文末我之前录制的视频课程,这里不过多介绍。在这之前,我一直觉得postfix比不上live template,是因为他不支持自定义模板,一直想不通为什么jetbrain不开发这个功能来提高postfix的地位,没想到2018.1终于实现了自定义模板。

上图中,自定义了 .do这个postfix,我们在敲了一个表达式之后,唤出 .do这个postfix,IDEA自动送你一个do while循环,并且随后光标自动跳转到你接下来需要书写逻辑的地方,棒不棒?

7. 自定义类生成文件名前后缀

这个功能是IDEA对自动生成类文件的增强,IDEA的自动生成类文件,举两个简单的例子

  1. 你创建好一个接口之后,直接在接口名处按下alt+enter,动一动上下键,一路按回车,可以给你自动生成这个接口的实现,默认后缀为Impl

  2. 你要对当前类写个UT,直接在当前类下按下cmd+shift+t,一路按回车,动一动上下键,空格键,可以给你自动生成这个类的UT,默认后缀为Test

之前这个默认值在IDEA中是不能修改的,新版本不仅可以修改这个默认后缀,甚至连默认前缀也可以修改,自由度更高,可以让自动生成的类更加贴合你的代码风格

8. debug异常模拟

IDEA的debug功能可以说让我爱不释手,无论是bug的排查,源码的阅读,超多惊艳的功能几乎每次都能让你瞬间定位关键代码。在之前的版本,IDEA已经实现了表达式(段落)求值,动态值修改,force return等强悍的调试功能,新版增加了Exception模拟功能。debug的时候,你可以在任意一个地方,模拟异常的抛出,这在验证代码的异常完备性方面非常有用。

9. 断点栈轨迹

在阅读netty源码的过程中,我最喜欢的功能就是使用IDEA的调用栈迅速了解某段代码执行的上下文环境,调用栈被挂起之后,只需要动一动上下方向键,就可以快速熟悉这段代码的执行路径。

 新版本中,如上图,IDEA对breakpoint的功能得到进一步的增强,让你的断点调试在控制台留下轨迹,每经过一个断点,都会在控制台打印出这个断点的调用栈,下次,可以不用调试你就能知道断点处的代码原始的调用链是什么。

10. 更强大的全局文本替换

IDEA对文本的处理可以说是相当强悍了,无论搜索还是替换,可以自定义范围,文件名,甚至支持预览效果。新版本对全局文本替换功能进行进一步的扩充,上图展示的是,你想把所有 xxController文件替换成 xxProducer,直接上两段正则表达式就可以迅速完成,并且在窗口下方实时预览修改后的效果。

11. SpringBoot整合进一步优化

IDEA和Spring的整合可以说是天衣无缝,Spring IOC和AOP的特性在IDEA中得到了充分的可视化体现,无比强大的关联功能让人叹为观止,详细可以翻到文末我录制的视频。

 新版本更是对SpringBoot的整合达到了一种登峰造极的程度。上面图展示的是,当你的SpringBoot应用启动之后,在所有对外提供API的方法,你都可以直接点个鼠标就可以发起HTTP调用,发起HTTP调用有两种方式:

  1. 一种方式是直接发起调用,不用手动输入url,调用之后结果直接展示在控制台

  2. 另外一种调用方式更为强大,IDEA给你自动给你生成一个.http文件,这个文件里面,你可以自定义http请求的参数,url,并且每一次调用的结果都保存为一个文本文件,甚至可以进行调用结果的对比。

12. git部分提交与changelist

IDEA对git的可视化支持以及各种快速便捷的操作在代码冲突解除、开源代码历史版本追溯、code review发挥了强大的作用,你根本不需要第二个可视化版本控制工具。在IDEA的版本控制管理的概念里有一个changelist的术语,指的是,你可以把每一处更改扔到不同的变更集合里,提交代码的时候,你可以选择不同的变更集合进行提交,剩下的变更集合,变更还在,但是不会提交到仓库中。这个应用场景是,比如,你遇到一个新项目,想快速了解这个项目,你可以随意做修改,把这些修改扔到一个自定义的changelist中,而在真正完成task的时候(一般刚开始接触新项目,实现的需求都比较简单,几行代码搞定),把需求实现的变更集进行提交即可,之前的实验代码可以留在你的项目中,你可以进一步地做实验。

本次版本的更新,细粒度版本控制得到了进一步的增强,上面这幅图展示的是,你在提交代码的时候,窗口右半侧左边栏,每一处改动都会有一个单选框,如果你在code review的时候,不想提交某一处改动,只需要把前面的单选框取消勾选即可,这样,结果就是,代码还在本地项目中,但是不会提交到版本库。

此外,你还可以把你不想提交的代码扔到一个自定义changelist里,代码还在,但是不会提交,如上图。

13. git历史记录增强

在阅读netty源码的过程中,有的时候我会发现注释和代码逻辑牛头不对马嘴,于是,我使用了IDEA的git历史记录功能之后发现,原来这段注释是应用在很久之前的代码上的,老代码注释一直未删除,这也说明了你在阅读开源项目的时候,不要盲目相信权威,要多思考,要相信自己的判断。

 本次git的历史记录的增强,指的是,你在阅读某个版本的代码,想了解这个版本中的某一个文件的提交历史,你可以直接在这个文件上右键,然后查看针对当前版本,查看这个文件的提交历史,所有的改动一览无余。

14. 弹出式javadoc

对的,新版本IDEA终于支持弹出式java doc了,当你鼠标放到某个方法,参数,类型上去的时候,自动给你弹出对应的文档的解释,并且给出文档表现形式是经过美化的。

15. Kubernetes支持

IDEA之所以如此优秀,是因为jetbrain一直会关注行业的最新动态,迅速实现对java生态圈中热门技术的整合。我记得当年Docker刚火起来的时候,IDEA就已经开始对Docker的整合了,并且在每个版本里面迅速迭代,目前IDEA对docker的支持已经做得非常出色了。上图展示的是IDEA对Kubernetes的支持,只敲了几个字母,一个Kubernetes资源文件模板就生成了,然后,一个批量编辑,光标自动定位,一个完整的资源文件就已经写完了,IDEA在2018.1版本中对Kubernetes的支持做了非常多的增强,感兴趣的同学可以看下官网博客的专题介绍 https://blog.jetbrains.com/idea/2018/03/intellij-idea-2018-1-kubernetes-support/

结束语

以上就是我对本次 IntelliJ IDEA 2018.1 版本更新的解读,如果你非常迫切想提升开发效率,提升代码质量,可以点击阅读原文跳转到我的IDEA系列课程(点到章节tab之后可以使用微信登录观看),免费,看完这个课程之后再来读这篇文章,可能会更容易理解。

最后,如果你想快速提高阅读源码效率,想快速解决你在学习netty过程中的任何问题,欢迎加入我的星球,我会在此不定期分享阅读源码的各类技巧,每个技巧均立竿见影

转载于:https://my.oschina.net/u/3805464/blog/1834371

IntelliJ IDEA 2018.1新特性相关推荐

  1. IntelliJ IDEA 2018.2支持Java 11、MacBook Touch Bar等新特性

    近期,JetBrains发布了其旗舰产品IntelliJ IDEA的2018.2版本.新版本支持即将推出的Java 11.断点意图(Breakpoints Intentions).MacBook的To ...

  2. IntelliJ IDEA 2018.3 安装、永久破解及新特性说明

    文章目录 一.下载 二.安装 三.破解 四.新特性说明 五.实用技巧 一.下载 前往 IntelliJ IDEA官网 下载Ultimate版本(IntelliJ IDEA官网会默认选择适合当前操作系统 ...

  3. Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用...

    概述 Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Mi ...

  4. [转]IntelliJ IDEA 2019.3正式发布,给我们带来哪些新特性?

    每篇一句 工欲善其事必先利其器 --<论语·卫灵公> 前言 千呼万唤始出来.自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注此版本正式版 ...

  5. IntelliJ IDEA 2019.3 正式发布,给我们带来哪些新特性?| CSDN 博文精选

    作者 | _YourBatman 责编 | 屠敏 出品 | CSDN 博客 前言 千呼万唤始出来.自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注此 ...

  6. 应用广泛的语言ECMAScript 2018来了,新特性都在这里

    原文:What's new in ECMAScript 2018 作者:Paul Krill 翻译:不二 译者注:ECMAScript是应用广泛的语言,它常常被称为JavaScript或JScript ...

  7. IntelliJ IDEA 使用 Java 11新特性以及Java 8 以来的Java 11新特性介绍

    文章目录 Java 11 安装 IDEA 设置 特性1:lambda表达式中允许使用var 特性2: String新增REPEAT 方法,方便拷贝字符串 特性3: 文件读写更方便:readString ...

  8. WWDC 2018:iOS 12 通知的新特性

    Session 710 : What's New in User Notifications iOS 10 新增的 UserNotifications.framework 用一套易用的接口替换了之前版 ...

  9. 5分钟学会Java 9~Java11的七大新特性

    Java11 发布了,然而很多公司还在用Java 8 ,本文会简要介绍Java 9 -11 引入的新语法和API. 本地变量类型推断 Java 10 就已经引入了新关键词var,该关键词可以在声明局部 ...

最新文章

  1. 【pytorch】torch.mean的使用
  2. 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice
  3. JAVA——TCP连接中Socket的正确关闭方式
  4. html5 字符相等,js里返回字符ok与字符ok比较不相等的问题
  5. 三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点
  6. RocketMQ初步应用架构理论
  7. 【转载】LinkedHashMap和HashMap区别
  8. Mongo 安装、配置、启动 Windows
  9. C/C++——++i、i+=1、i++之间的区别(附在学习boost时遇到的例子)
  10. Handler的源码分析
  11. 【Spring Cloud】注册中心-Euraka
  12. python基础编程语法-1.Python基础语法
  13. 使用WUCDCreator将SCSI、RAID、SATA、SAS驱动程序集成到光盘中
  14. 51单片机c语言教程第二章,51单片机C语言教程-郭天祥-PDF转word版第二章.docx
  15. TFN FAT130 便携式手持频谱分析仪 9KHZ到6GHZ范围高端频谱测试仪
  16. NLTK文本分割器是如何工作的
  17. VRRP协议及实验配置
  18. window——生成ssh密钥
  19. 数据结构--栈--两栈共享空间
  20. 硬核机器学习干货,手把手教你写KNN!

热门文章

  1. 好文 | “智能经济”时代,协作机器人的应用前景与趋势探讨
  2. 人工智能军事对抗技术发展趋势
  3. 2018中国自动驾驶市场专题分析
  4. 西电焦李成教授解读《高等学校人工智能创新行动计划》
  5. “芯痛”之下阿里苦心研发NPU AI芯片究竟哪款PU更厉害?
  6. 埃森哲:2018年科技愿景
  7. 一男子蒙冤入狱 10 天,竟是 AI 认错了!
  8. 鸿蒙内核源码分析:调度机制篇
  9. MCMC(二)马尔科夫链
  10. /etc/passwd文件小析