【方向盘】超爱的IDEA提效神器Save Actions,卸载了

简介: 一切工具,都是为了提效
本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏

你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title Link
所属专栏 【方向盘】-IntelliJ IDEA
源代码 https://github.com/yourbatman/FXP-java-ee
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 https://wangpan.yourbatman.cn
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代码审查能力,来保证代码质量

优点:全局扫,大而全
缺点:项目太大时候可能慢。另外,毕竟还是手动的,忘记了就没辙了

✌commit前执行Action

在这里插入图片描述
在IDEA的commit窗口栏里,点击如图红色框框里的设置按钮:
在这里插入图片描述
每个选项都代表什么功能,单词你都认识,所以不用多余解释了。

优点:在提交前集中式卡点,可做到没有漏网之鱼
缺点:阶段过于靠后。若需要修改,留给RD修改的时间太少了。所以经常会出现妥协式提交

PS:如果你平时提交代码用黑窗口、Smart Git而非IDEA,那就享受不到此“福利”喽

就我个人习惯而言,我不喜欢使用commit这种方式,工作中也很少使用。我认为应该将此动作提前:编辑每个文件保存时就及时触发相应动作,并且是自动的(无需人为干预)。

所以,接下来就引入本文主角:Save Actions。

Save Actions是什么?

直译:保存动作(们)。翻译为保存时触发的动作更为合适~

它其实也就是IDEA的一个插件而已:
在这里插入图片描述
简介为:支持可配置的、类似Eclipse的保存操作,包括“优化导入”、“重新格式化代码”、“重新排列代码”、“编译文件”和一些Java快速修复程序,如“添加/删除“this”限定符”,等等。当文件在磁盘上同步(或保存)时,插件将执行配置的操作

惊不惊喜?这不正是我们需要的功能吗?是的,有了它,再也不用担心团队成员提交没有“处理”过的代码了。

我的常用配置如下截图:
在这里插入图片描述
如果你乐意,还可以勾选多个Java检查快速修复功能点(Java Inspection and Quick Fix),我一般不勾。

为何卸载Save Actions?

既然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个功能进行简述:

✌Reformat code

格式化代码,推荐勾选☑️
在这里插入图片描述
格式化代码范围:

  • Whole file:整个文件。这是默认选项
  • Changed lines:只格式化修改的行(们)。保守点的话,你可以使用此选项

Configure scope:配置范围。支持书写glop patter语法)来自定义需要格式化的代码范围;支持通过@formatter:off/on等方式来控制某段代码不允许/允许格式化。这个自定义的功能怎么说呢,绝大多数情况下用不着这么去自定义,毕竟大大提高了复杂度。
在这里插入图片描述
格式化MyBatis的xml文件里的SQL时有时会出问题,这时可以通过加上@formatter:off/on注解来禁止格式化(需要先开启此功能)

✌Optimize import

重新排列import导包。作用:

  1. 将import按照顺序重新排列(比如static静态导入会放到最后)
  2. 删除掉无用的import

推荐勾选☑️
在这里插入图片描述

✌Rearrange code

重新排列代码,推荐勾选☑️
在这里插入图片描述
关于这个功能可能有的同学不太了解,拿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() {
    }

}

这就是重新排列的含义。自上而下排序规则:属性 -> 静态方法 -> 实例方法。

开发工具保持使用最新版

在编程界,坐在第二排看戏被公认不失为一种很好的升级策略:既保证不会过于陈旧享受不到新技术红利,又在稳定性上有所保证。比如:

  • JDK版本不要当小白鼠追新
  • Spring Boot、中间件版本不要一味追求最新版
  • ...

根据我的从业经验,对此观点有所改变,分享出来供你参考:

  • 和数据打交道的基础设施层面(如JDK、Spring Boot、MQ、Redis...),尽量保守点,毕竟稳定压倒一切
  • 开发工具类(如IDEA、DataGrid、Navicat...)推荐保持最新版,享受新功能特性带来开发效率上的提升,原因有三

    • 1、享受新红利:可能是性能上提升、也可能是新功能来辅助你提升开发效率。毕竟对于软件来讲,新不如旧的可能性极低极低
    • 2、keep update能让你对升级不再恐惧。毕竟若从2017年版本一步升级跨入2021年版本,对兼容性方面心里都会打鼓
    • 3、开发工具即使出现(重大)bug,对数据不会造成任何影响,况且这个概率极低极低

即使是开发工具升级切勿盲目。至少你得看看升级的feature,是否存在阻断式更新等等...当然,据我了解,以IDEA为例,同学们不升级到最新版的最大阻碍是:无法破解。这个笔者就不多说什么了(毕竟正版IDEA确实比较贵...),是否购买正版自行选择喽~

✍总结

本文旨在输出一个观点:一切工具旨在提效,工具好也要用得巧。正所谓同样一把菜刀,握在米其林餐厅厨师手中和握在街边小炒厨师手中的功效的完全不一样的。

如果你还想了解IntelliJ IDEA什么内容可留言告诉我互相交流学习哈。当然喽,对于那些“IDEA如何破解?”、“IDEA插件推荐”这类话题,笔者无感的so

推荐阅读

在这里插入图片描述

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号 专栏名称 简介
01 【方向盘】-程序人生 程序人生,人生程序
02 【方向盘】-资讯/新特性 IDEA、JDK、Spring技术栈......新特性
03 【方向盘】-IntelliJ IDEA 熟练使用IDEA就相当拥有物理外挂,助你高效编码
04 【方向盘】-Bean Validation 熟练掌握数据校验,减少90%的垃圾代码
05 【方向盘】-日期时间 帮你解决JDK Date、JSR 310日期/其实 的一切问题
06 【方向盘】-Spring类型转换 Spring类型转换-框架设计的基石
07 【方向盘】-Spring static static关键字在Spring里的应用
08 【方向盘】-Cors跨域 关于跨域请求问题,本专栏足矣
09 【方向盘】-Jackson Almost Maybe是最好的Jackson专栏
10 【方向盘】-Spring配置类 专讲@Configuration配置类,你懂的
11 【方向盘】-Spring技术栈 暂无所属小分类的,Spring技术栈大分类
12 【方向盘】-JDK 暂无所属小分类的,JDK技术栈大分类
13 【方向盘】-Servlet Servlet规范、Web相关内容专题
14 【方向盘】-Java EE 从Java EE到Jakarta EE,30年弹指一挥间
15 【方向盘】-工具/提效 开发工具、软件工具,目标是提效
16 【方向盘】-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17 【方向盘】-基本功 每个Javaer,都需要有扎实的基本功
... ... ...
99 源代码库 大多数专栏均配有源代码,都在这里
目录
相关文章
|
存储 IDE 开发工具
研发提效工具3 - IDEA极速打开项目方案
# 背景 作为Idea、Android Studio、PyCharm等`jetbrains`系列IDE的开发者,每次打开一个工程项目时,一般都使用鼠标点击IDE左上角的Open菜单来才做。本文介绍一种基于Alfred的快捷方式进行打开操作。 # 效果图 ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/affab
548 0
研发提效工具3 - IDEA极速打开项目方案
|
IDE 程序员 Shell
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
|
1月前
|
Oracle 关系型数据库 Windows
如何彻底卸载 IDEA,将IDEA完全删除
本文提供了一个详细的教程,指导用户如何彻底卸载 IntelliJ IDEA,包括使用Uninstall.exe程序和通过注册表删除残留项的步骤。
1058 3
如何彻底卸载 IDEA,将IDEA完全删除
|
IDE Java 程序员
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
扔掉鼠标,提高效率。 新春快乐,虎年大吉。
230 2
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)