你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
Title | Link |
---|---|
所属专栏 | 【方向盘】-IntelliJ IDEA |
源代码 | |
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 | |
Java开发软件包(Mac) | https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit |
女娲工程 | http://152.136.106.14:8761 |
版本约定 | Mac OS 12.3,iTerm2 3.4.15(zsh 5.8),IntelliJ IDEA 2021.3.3 |
一切工具,都是为了提效。效率的提升一般来讲并不改变事务的本质,但足够高的效率也能引起质变,这和程序员熟悉的量变引起质变道理一样。
IDEA作为Javaer的必备神器,几乎每个开发者都在使用。作为(公司内)IDEA的布道者,笔者分享的每篇IDEA相关文章都能受到喜爱,比如最近的两篇:
工具好,也要用得巧。虽说每个Javaer都在用着同一个工具(IDEA),但对工具的使用效率上往往差异较大,可以翻看👆🏻的文章,看看自己是否在低效率的使用它!
本文给你安利一个提效神器:Save Actions,再向你解释下笔者为什么要卸载它!
开发过程中,当遇到痛点时总希望去寻找相应的工具解决。
在开发项目时,一般都是多人维护一个项目。代码写下去只需要1次,但会被人看几十上百次,所以保持一致的代码规范、代码展示变得非常重要。但是,当团队内多人开发一个项目时,由于每个人的编码习惯、思维习惯、水平、觉悟都高低不一具有多样性,那么如何保证“所有人”的代码风格一致呢?
这个时候就得使用规则了。
相信很多团队各自都有自己的代码规范模板,模板一般是取最大公约数定出来的,比较容易达成一致。毕竟漂亮的东西趋同,只会丑得千奇百怪。定好代码的规范模板后,组员如何能高效的实施呢?这个时候一般要求提交代码之前必须(按照规范模板)格式化处理,进而达到抹平差异,去除掉个人风格,达到统一的目的。
问题又来了:IntelliJ IDEA是自动保存的,因此很多时候你修改了代码之后就出现:代码没有格式化、出现无用的import、无用的变量等一些列“不规范”的问题就保存了/提交了,怎么破?
针对这类痛点,作为开发神器的IDEA怎能想不到。因此它也针对性的提供了相应方案。
嗯,方式方法都在这里:【方同学】利用IDEA代码审查能力,来保证代码质量
优点:全局扫,大而全
缺点:项目太大时候可能慢。另外,毕竟还是手动的,忘记了就没辙了
在IDEA的commit窗口栏里,点击如图红色框框里的设置按钮:
每个选项都代表什么功能,单词你都认识,所以不用多余解释了。
优点:在提交前集中式卡点,可做到没有漏网之鱼
缺点:阶段过于靠后。若需要修改,留给RD修改的时间太少了。所以经常会出现妥协式提交
PS:如果你平时提交代码用黑窗口、Smart Git而非IDEA,那就享受不到此“福利”喽
就我个人习惯而言,我不喜欢使用commit这种方式,工作中也很少使用。我认为应该将此动作提前:编辑每个文件保存时就及时触发相应动作,并且是自动的(无需人为干预)。
所以,接下来就引入本文主角:Save Actions。
直译:保存动作(们)。翻译为保存时触发的动作更为合适~
它其实也就是IDEA的一个插件而已:
简介为:支持可配置的、类似Eclipse的保存操作,包括“优化导入”、“重新格式化代码”、“重新排列代码”、“编译文件”和一些Java快速修复程序,如“添加/删除“this”限定符”,等等。当文件在磁盘上同步(或保存)时,插件将执行配置的操作。
惊不惊喜?这不正是我们需要的功能吗?是的,有了它,再也不用担心团队成员提交没有“处理”过的代码了。
我的常用配置如下截图:
如果你乐意,还可以勾选多个Java检查快速修复功能点(Java Inspection and Quick Fix),我一般不勾。
既然Save Actions这么好用,笔者为何要卸载它呢?一切都要从IDEA的迭代发展说起~
并不是笔者不重视这块了,而是有更好的方式取而代之。笔者从2017年底开始使用IDEA到现在,见证了它的迭代,最近几个版本都有写新特性的文章哦:
随着IDEA的发展,硬核功能点越来越完善。举个例子:lombok自2015年起逐渐流行开来,因此在IDEA上安装lombok插件也就成了必备动作。既然如此,IDEA在其2020.3
便将lombok插件设为内置,开发者无需再手动安装:
同理,IDEA眼瞅着使用者对自动代码格式化/自动代码检查的需求这么高,索性就将此功能也内置了。值得注意的是:从2021.2版本起才内置哦。
此功能并非以插件形式内置,位置在这: Preferences/Settings | Tools | Actions on Save
以上(勾选的)动作在保存时会自动触发。有了它,我似乎没有理由再留着Save Actions插件,这便是笔者卸载它的根因。
下面对最常用的3个功能进行简述:
格式化代码,推荐勾选☑️ 。
格式化代码范围:
Configure scope:配置范围。支持书写glop patter语法来自定义需要格式化的代码范围;支持通过@formatter:off/on等方式来控制某段代码不允许/允许格式化。这个自定义的功能怎么说呢,绝大多数情况下用不着这么去自定义,毕竟大大提高了复杂度。
格式化MyBatis的xml文件里的SQL时有时会出问题,这时可以通过加上@formatter:off/on注解来禁止格式化(需要先开启此功能)
重新排列import导包。作用:
推荐勾选☑️ 。
重新排列代码,推荐勾选☑️ 。
关于这个功能可能有的同学不太了解,拿Java举个栗子吧。
源代码:
/**
* 在此处添加备注信息
*
* @author YourBatman. <a href=mailto:yourbatman@aliyun.com>Send email to me</a>
* @site https://yourbatman.cn
* @date 2021/8/20 15:06
* @since 0.0.1
*/
public class Demo {
private String name;
public int fun1(){return 0;}
private void fun0(){}
private static void funStatic0(){}
private int age;
public static void funStatic(){}
}
代码保存(触发Optimize import动作)后:
/**
* 在此处添加备注信息
*
* @author YourBatman. <a href=mailto:yourbatman@aliyun.com>Send email to me</a>
* @site https://yourbatman.cn
* @date 2021/8/20 15:06
* @since 0.0.1
*/
public class Demo {
private String name;
private int age;
private static void funStatic0() {
}
public static void funStatic() {
}
public int fun1() {
return 0;
}
private void fun0() {
}
}
这就是重新排列的含义。自上而下排序规则:属性 -> 静态方法 -> 实例方法。
在编程界,坐在第二排看戏被公认不失为一种很好的升级策略:既保证不会过于陈旧享受不到新技术红利,又在稳定性上有所保证。比如:
根据我的从业经验,对此观点有所改变,分享出来供你参考:
即使是开发工具升级切勿盲目。至少你得看看升级的feature,是否存在阻断式更新等等…当然,据我了解,以IDEA为例,同学们不升级到最新版的最大阻碍是:无法破解。这个笔者就不多说什么了(毕竟正版IDEA确实比较贵…),是否购买正版自行选择喽~
本文旨在输出一个观点:一切工具旨在提效,工具好也要用得巧。正所谓同样一把菜刀,握在米其林餐厅厨师手中和握在街边小炒厨师手中的功效的完全不一样的。
如果你还想了解IntelliJ IDEA
什么内容可留言告诉我互相交流学习哈。当然喽,对于那些“IDEA如何破解?”、“IDEA插件推荐”这类话题,笔者无感的so