☰
IDEA 必备插件实测推荐:Lombok、SonarLint、Save Actions、String Manipulation
2026/10/3 2:59:45 网站建设 项目流程

玩 IDEA 的老哥应该都有这种体会:写 Java 后端,每天大半时间泡在 IntelliJ IDEA 里,代码写多了,反而开始研究怎么让工具自己多干点活。今天就推荐四款我用了很久、实测下来最稳、也最舍不得删掉的 IDEA 插件。每一款都会说清楚它解决什么痛点、怎么配置、有什么坑,尽量让你看完就能直接上手用。

这四款插件覆盖了日常开发里最烦的四个环节:写实体类时的样板代码、写完后没人看的代码质量、提交 git 前的格式混乱,以及复制粘贴时要做的各种字符串转换。我选插件的标准也很简单:不整花活,只选那些能让我少加班、少跟同事扯皮、少在 commit 里翻垃圾 diff 的。

1. 这四款插件怎么选的:先看选型思路,再看推荐清单

很多人装插件是看社区推荐什么就装什么,今天装个主题美化,明天装个翻译工具,装完之后 IDEA 启动越来越慢,真正解决问题的一个没有。我这个人的习惯比较务实,先想清楚自己在写代码时到底被什么绊住过,再去挑工具。

1.1 写业务代码最烦的是什么

先说说日常写代码时最容易让程序员抓狂的几个场景。

第一个是实体类。一个普通的 User 类,字段还没写几个,getter、setter、toString、equals、hashCode 先占掉几十行。这玩意儿要是手写,手速再快人也烦;不写,后面 JSON 序列化、日志打印、对象比较全是坑。这类代码就像入职第一天让你填十张信息登记表,每张表都长得差不多,但又不得不填。

第二个是代码质量问题。本地跑得好好的,推上去流水线一跑,SonarQube 扫出来一堆 Critical:有空指针风险、资源没关闭、字符串硬编码。等到集成阶段再返工,成本比在编辑器里直接发现高太多了。

第三个是格式问题。团队里十个人有十种格式化习惯,有人喜欢在保存前手动 Ctrl+Alt+L,有人忘了格式化就直接提交。最后 git 上全是格式噪音,review 的人一眼看过去根本分不清哪些是真实改动。

第四个是字符串处理的杂活。在 Chrome 里复制了一段 JSON,要粘贴到 Java 代码里当字符串常量;从数据库复制了一个字段名 user_name,要在代码里写成 userName;想临时把一段文本转成 URL 编码给接口测试用。这些活儿不大,但一天来几次,非常消耗耐心。

说到底,这几个痛点都是高频、低技术含量、但又不得不做的事。解决它们不需要学什么新框架,装对工具就够了。

1.2 我的筛选标准

我选择插件的标准是三条:第一,必须解决真实痛点,而不是靠新鲜感吸引人;第二,学习成本必须低,装上就能用,不需要读一长篇文档;第三,稳定性要过关,不能在大项目里一跑就卡死或者跟别的插件打架。

按这三个标准选下来,最后留在列表里的就是下面这四款,涉及的场景分别是写样板代码、查质量问题、统一格式、处理字符串杂活:

插件解决的痛点上手成本个人推荐度
Lombok实体类样板代码过多很低,注解即用必备级
SonarLint代码质量问题和潜在 Bug中等,需要看规则强烈推荐
Save Actions保存时自动格式化极低,勾选即用强烈推荐
String Manipulation字符串转换与处理低,快捷键调出提升幸福感

下面一个一个拆开讲,包括原理、配置、实操、以及我踩过的坑。

2. 第一款:Lombok——把样板代码从实体类里清走

Lombok 在 Java 圈子里基本是标配了,但用的人多不代表所有人都用得明白。很多人只是跟着网上的教程加了个 @Data,结果遇到 @Builder 默认值失效、JDK 版本升级后编译报错,就直接开骂“垃圾插件”。实际上大部分坑都是配置不对或者注解用错了。

2.1 Lombok 到底做了什么

Lombok 的底层原理是 Java 的注解处理器。它在编译阶段介入 javac 的抽象语法树,动态生成 getter、setter、构造器、builder 等方法,然后再编译成字节码。这相当于在项目里请了个“代填表格”的小工,你只需要写字段,剩下重复的模板代码编译期自动补全。

先看没有 Lombok 的样子:

public class User { private Long id; private String name; public User() { } public User(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } // ...toString、equals、hashCode 再写几十行 }

再看用了 Lombok 之后的同一个类:

@Data @NoArgsConstructor @AllArgsConstructor public class User { private Long id; private String name; }

代码缩了大概百分之八十。而且注意,生成的 toString、equals、hashCode 是跟着字段走的,以后实体类加了新字段,重新编译自动同步,永远不用担心忘了改导致的诡异问题。

2.2 安装和 Maven 配置要一起做

很多人只知道在 IDEA 的 Plugins 市场里搜 Lombok、装上重启,却忘了改 pom.xml。结果同事拉代码一编译,直接报“程序包 lombok 不存在”。这是新手最常犯的错误,也是新员工入职第一天最常问的问题。

安装要分两步走。第一步,IDEA 里装插件:

  1. 打开 Settings -> Plugins,切到 Marketplace。
  2. 输入 Lombok,看到官方那个图标点 Install。
  3. 重启 IDEA 让插件生效。

第二步,项目里加依赖。如果用的是 Maven:

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <scope>provided</scope> </dependency>

这里用 provided 是因为 Lombok 只在编译期需要,最终运行的 class 文件里已经包含生成好的方法了,不需要把它的 jar 包打进生产环境。

如果你用的是 JDK 9 以上的模块化项目,或者用 Spring Boot 3.x 这类对编译期要求比较严格的项目,建议再补一段 annotationProcessorPaths,把 Lombok 显式声明给编译插件:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> </path> </annotationProcessorPaths> </configuration> </plugin>

这段配置的意义是告诉 Maven 编译器,处理注解的时候走哪条处理器路径。不加这段,在一些模块化项目里会出现 IDEA 里跑得好好的,命令行 mvn clean package 却报错的情况。

2.3 真正值得用的几个注解

@Data 是最常用的,但 Lombok 的核心能力远不止一个 @Data。我实际项目里使用频率最高的注解就这么几个,可以一张表说清楚:

注解作用典型使用场景
@Data组合注解,生成 getter/setter/toString/equals/hashCode实体类、DTO
@Builder生成建造者模式复杂对象创建
@NoArgsConstructor / @AllArgsConstructor生成无参/全参构造器配合 @Data 使用
@RequiredArgsConstructor生成包含 final 字段的构造器Spring 构造器注入
@Slf4j直接注入 log 字段类里用 log.info 打日志
@Builder.Default给 Builder 模式指定默认值解决默认值丢失问题

我最想单独说说 @Slf4j。没有它的时候,每个类里都要写一行:

private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class);

有了 @Slf4j,类上面加一行注解,直接用 log.info 就行。看着省得不多,但每个类都省这一行,项目里少了几百行重复代码,而且再也不用担心类名复制错了导致日志来源对不上。

2.4 踩过的坑和注意点

Lombok 虽然好用,但有几个坑我都是踩过之后才长记性的。

第一个就是 @Builder 默认值失效。直接给字段赋初始值,用 @Builder 创建对象时初始值会被丢掉:

@Data @Builder public class Config { private int timeout = 3000; // 这个默认值不会生效 }

正确做法是加 @Builder.Default:

@Data @Builder public class Config { @Builder.Default private int timeout = 3000; }

第二个坑是 @Data 放在有继承关系的类上时,equals 和 hashCode 不会把父类字段算进去。如果父子类混用,比较对象时可能出现子类字段相同但父类字段不同,结果 equals 返回 true 的情况。遇到继承实体,要么手写 equals/hashCode,要么把 @Data 拆成 @Getter/@Setter 单独用。

第三个坑是 JDK 版本升级。Lombok 的注解处理器跟编译器的 AST 耦合很深,JDK 大版本一升级,旧版 Lombok 非常容易翻车。实测 JDK 17 开始有些版本就必须用 1.18.20 以上;到了 JDK 21,强烈建议直接上 1.18.28 之后的版本。每次升级 JDK,顺手把 Lombok 版本也升一下,能省很多排查时间。

注意:Lombok 还容易和 MapStruct、QueryDSL 这类同样使用注解处理器的框架打架。如果项目同时用了这些,maven-compiler-plugin 的 annotationProcessorPaths 一定要把 Lombok 和对应框架的处理器都列上,并且顺序要稳定,否则经常会出现“编译期类生成一半”的玄学问题。

我个人的习惯是:Lombok 用在实体、DTO、VO 上没问题,但不要在复杂的领域模型上滥用链式 setter,也不要为了“少写几行”把 @Data 无脑丢在每一个类上。它的价值是减少重复,而不是掩盖设计问题。

3. 第二款:SonarLint——在写代码的时候就把问题掐死在编辑器里

第二款是后知后觉才爱上的一款。以前我总觉得“代码质量扫描是 CI 干的事”,本地写得爽就行,流水线挂了再改。后来在一个老项目里被连续两个 Critical 问题告警折腾了几次,才发现如果本地编辑器里就能看到这些问题,修起来成本要低一个数量级。

3.1 实时检查的逻辑

SonarLint 本质上是一个把静态代码分析规则跑在本地编辑器里的插件。它会持续扫描当前文件,把规则引擎发现的异常、坏味道、潜在漏洞直接标注在代码行上,类似拼写检查对文本的作用。

它检测的问题分几类:

  • 可能的空指针、越界等运行异常隐患
  • 资源没有关闭、连接没有释放
  • 未使用变量、冗余表达式等坏味道
  • 硬编码密码、SQL 字符串拼接等安全问题
  • 圈复杂度超标等可维护性问题

举个例子,这种代码写下去,SonarLint 会直接在当前行标红:

public String getUserName(Map<String, Object> param) { Object name = param.get("name"); return name.toString(); // 这里可能 NPE:map.get 返回 null }

以前这种问题要等到代码 review 或者流水线扫描才能暴露出来,现在写代码的瞬间编辑器就提示了,顺手就能改成安全写法:

public String getUserName(Map<String, Object> param) { Object name = param.get("name"); return name == null ? null : name.toString(); }

别小看这一步。上百个文件的项目,每个文件少一个隐患,版本发布前要处理的告警数量完全不是一个量级。

3.2 我最常用的几个检查项

SonarLint 默认规则集比较全,但没必要全开。我把其中最值得关注、命中率最高的规则整理如下:

规则分类典型提示实际意义
空指针风险“NullPointerException might be thrown”最常见的线上事故来源
资源未关闭“Close this InputStream”连接泄漏,高并发下会拖垮服务
未使用变量“Remove this unused variable”代码整洁度
SQL 拼接“Use a variable binding mechanism”防注入,安全底线
硬编码“A password hardcoded”敏感信息泄露风险
复杂度“Split this class into smaller”可维护性信号

这里解释一下,SonarLint 的规则等级通常分 Critical、Major、Minor。在实际开发中,我给自己定的规矩是:Critical 必改,Major 尽量改,Minor 可以留到有空一起处理。不要追求满屏绿色零告警,代码是人写的,不是机器写的,留少量合理告警完全正常。

3.3 配置与使用技巧

SonarLint 默认会随着你打开文件自动分析,不需要手动触发。但对于改动比较多的文件,我习惯在提交前手动跑一次完整的 Scan:

  1. 打开目标文件。
  2. 右键 -> 选择 SonarLint -> Analyze Current File。
  3. 查看报告,分类处理。

如果项目有 SonarQube 服务器或者 SonarCloud,可以在 Settings -> SonarLint 里绑定项目,这样本地扫描规则和 CI 完全一致。没有服务器也不影响使用,SonarLint 内置的默认规则集在本地就能独立工作。

还有一个实用技巧:层级筛选。SonarLint 的问题面板支持按文件、按规则、按严重程度过滤。在提交代码之前,我一般只看“Changed files”这一个视图,确保我这次改动引入的新问题都清干净了,而不是被历史遗留的几千条告警淹没了。

3.4 容易误报和需要忽略的情况

SonarLint 不是万能的,它的很多规则算的是“概率性风险”,所以误报并不少见。比如对动态 SQL 拼接的告警,如果你的项目里已经统一用 MyBatis 的 或者参数化查询,就可以放心忽略。再比如对Optional.get()的告警,如果你的业务逻辑里已经保证了isPresent()判断,也不必过于纠结。

另外,大项目里全量扫描会有点慢,我建议日常只对改动过的文件做分析,别动不动就右键“Analyze All Project Files”。这不是插件不稳定,而是静态分析本质上是算力活,文件越多耗时越长。

SonarLint 的定位应该是“提醒器”,不是“审核员”。它帮你把最低级的错误挡在编译前,但真正的代码 review 和架构设计,它替代不了。

4. 第三款:Save Actions——保存即格式化,团队代码风格不再靠自觉

第三款插件解决的是团队协作里最容易被忽视、也最容易引发争执的问题:代码格式不统一。你可能已经习惯了提交代码前手动按一下 Ctrl+Alt+L 格式化,但团队里不是每个人都有这个肌肉记忆。更常见的情况是,格式化快捷键和系统输入法快捷键冲突,开了个会回来忘了,就带着一坨乱格式提交了。

4.1 保存时自动格式化到底做了什么

Save Actions 的原理很简单:监听 IDEA 里的“保存文件”动作,在保存的瞬间自动触发一系列预设操作,比如 Reformat Code、Optimize Imports、Run File Cleanup。说白了,它把“保存”从“只写磁盘”变成了“写磁盘前做个全套整理”。

这里面有个关键设计:它是在后台自动执行的,不打断你的思路。你不需要停下来等格式化完成再继续写,只管写代码,保存的时候代码就已经被整理好了。

实际操作中,我建议配置这几个选项:

  • Activate on save(保存时激活)——必开
  • Reformat file(格式化文件)——必开
  • Optimize imports(优化导入)——建议开
  • 如果团队用 CheckStyle,再把 Run File Cleanup 打开

配置路径是 Settings -> Tools -> Save Actions,界面很直观,勾选即可。

这里补个背景:从 IDEA 2023.2 开始,官方其实已经内置了“保存时重新格式化”的选项,在 Settings -> Editor -> General -> Auto Import 和 Settings -> Tools -> Actions on Save 里。但 Save Actions 还是有一批老用户,因为它的清理能力更全面,还能配合运行特定的检查规则,比内置的格式化更彻底。

4.2 我的推荐配置清单

强烈不建议把 Save Actions 所有选项都打开。有些选项表面美好,实际副作用不小。我实测下来的推荐配置是这样:

选项是否开启原因
Reformat file开启核心功能,统一格式
Optimize imports开启清理无用 import,减少冲突
Run File Cleanup按需配合 CheckStyle 时开
Remove unused imports开启配合第二项
Reformat only changed text不勾会导致 diff 语义不完整,不如全文件格式化一致

有一个非常容易踩的坑是“自动导入所有包”。有些版本勾上这个选项后,你敲一个名字它就自动帮你 import,看似方便,但经常把两个同名类导入冲突,代码里直接冒出十几个红色的 Ambiguous method call。动不动弹窗要你选,还不如不自动。

4.3 启动后的效果

装上 Save Actions 之后,最直观的变化在 git diff 上。以前一段简单改动,diff 里可能混入 20 行格式调整,review 的人要花很大精力分辨哪些是逻辑变更。现在提交的每个文件都是格式化干净的、import 是排好序的,diff 里只剩真实改动。

团队成员之间也不用再互相提醒“你代码没格式化”“你 import 乱掉了”。这种问题的本质是防范机制缺失,而不是成员不自律。Save Actions 做的就是把这事变成自动流程,人靠不住,流程靠得住。

4.4 需要注意的问题

这个插件最容易“翻车”的场景是第一次装上扫全项目。如果你在一个历史老项目里安装它,保存任意一个文件时,插件会把整个文件按当前 IDEA 格式规则重新排一遍,diff 直接从几行变成几百行。我就见过同事因为这个被 git review 追着问“你到底改了啥”。

所以实操建议是:新项目直接装,老项目装之前先想清楚。启用后第一次提交前,先挑一个文件实测保存,看 diff 是否符合预期。公司有统一格式规范的话,先把 EditorConfig 配好,再开 Save Actions,效果最好。还有个细节,自动清理生成代码时尽量别勾,比如 target 目录、generated 目录里的文件,格式化成什么样都没意义,还容易干扰构建结果。

注意:格式化大文件很吃 CPU。超过 2000 行的文件,保存时你可能会感觉 IDEA 卡一下。遇到这种文件,建议手动在文件头加上// @formatter:off,或者临时关闭插件的 Reformat 选项。

5. 第四款:String Manipulation——字符串处理小能手,省下大量复制粘贴

前几款都是项目级、团队级的工具,第四款更偏个人向,属于“用过就回不去”的小工具。写代码的时候少不了跟字符串打交道,尤其是从网页、接口工具、测试环境里复制各种文本,要转格式、转大小写、转编码,以前都是去在线工具网站折腾,有了 String Manipulation 就全部留在编辑器里处理了。

5.1 它的核心能力

String Manipulation 是一款集合了大量字符串操作功能的插件,核心功能包括:

  • 大小写风格转换:camelCase、snake_case、PascalCase、kebab-case、CONSTANT_CASE
  • 字符串反转、去重行、按行排序
  • 转义与反转义:JSON 转义、Unicode 转义、HTML 转义
  • URL encode/decode
  • 直接格式化 JSON 字符串
  • 批量拼接字符串并用逗号分隔

说得直白点,它的作用就是把“文本编辑”这件事在 IDEA 里做到极致。以前要打开浏览器找在线工具的活儿,现在在编辑器里选中文本,一个快捷键就搞定了。

5.2 三个最实用的日常场景

场景一:JSON 字符串转 Java 常量。你在浏览器里复制了一段 JSON,想把它写进 Java 代码里做测试模板。这段 JSON 有双引号,直接粘进去会变成无数个字符串拼接,手改双引号非常折磨。有了 String Manipulation,选中 JSON,选择 Escape -> Java,瞬间转成可直接粘贴的 Java 字符串。

场景二:数据库字段转实体属性。数据库列名是 user_name,实体里字段是 userName。手改也容易,但字段多了麻烦。选中 user_name,调出菜单选 To camelCase,立刻变成 userName。

场景三:接口测试时对 URL 参数做编码。一些签名参数需要先 URL encode,选中文本,选 URL encode,直接生成编码结果,不用再开在线工具。

5.3 怎么用、快捷键绑定

安装后默认入口在菜单 Edit -> String Manipulation,或者右键菜单里也能看到。但这样每次都要点两级菜单,效率不够。我建议安装后立刻绑定快捷键:

  1. Settings -> Keymap -> 搜索 String Manipulation。
  2. 找到主菜单项,右键 Assign a shortcut。
  3. 我习惯设成 Alt+M,不跟系统快捷键冲突,也能单手盲按。

之后的操作流程就固定了:选中文本,Alt+M,弹出操作菜单,在里面选需要的功能。整个过程两三秒,完全不打断写代码的节奏。

5.4 避坑和经验

String Manipulation 看起来很轻量,用的时候也有几个注意点。

第一,格式化很长的 JSON 字符串时别选全文。曾经在一个十几 KB 的 JSON 上直接调格式化,IDEA 卡了好几秒。针对这种场景,建议把内容拆成小段处理,或者用编辑器自带的 JSON 格式化。第二,Unicode 转义功能处理中文字符时要注意编码。转出来是\uXXXX,但有些环境限定 UTF-8,格式一致才能正常还原。第三,这个插件更适合做临时处理,不适合做批量代码替换。真需要批量重构,建议用 IDEA 自带的 Structural Search 或者全局替换,更安全可控。

6. 新装好 IDEA 后的插件安装与配置实操

聊完这四款插件各自的能力,再集中说说安装和管理的实操。很多人装插件就是 Marketplace 一把梭,但真实工作环境里,有离线安装需求、有团队统一配置需求,还有装完不生效的排查需求,这些都要了解。

6.1 三种安装方式

第一种是最常用的在线安装。Settings -> Plugins -> Marketplace,搜插件名,点 Install,重启即可。适合个人开发和网络顺畅的场景。

第二种是离线安装。公司内网或者网络受限时,需要先在其他机器上或者插件官网下载对应的安装包,一般是 zip 或 jar。IDEA 里点 Settings -> Plugins -> 齿轮图标 -> Install Plugin from Disk,选择本地文件完成安装。注意版本要跟当前 IDEA 版本匹配,否则会出现安装成功但插件 disable 的情况。

第三种是企业统一分发。有的公司内部网络完全隔离,没法挨个去官网下载,常见做法是做一个内部插件市场,或者把插件安装包放在共享目录,新员工入职时统一拷贝。IDEA 支持通过自定义插件仓库地址接入内部源,适合有一定规模的技术团队。

6.2 团队插件怎么统一管理

插件配置的分发也是个麻烦事。我自己就吃过亏:开发环境一切正常,换台电脑后,插件是装上了,但 Save Actions 的配置、SonarLint 的项目绑定全丢了,还得重新配一遍。

推荐两个解法。一是 IDEA 自带 Settings Repository,把配置同步到 Git 仓库,一台机器提交,其他机器同步。二是把 .idea 目录和关键配置文件纳入团队规范,配合 EditorConfig 统一代码风格。这比让每个人手动调一遍高效得多,新同事入职当天基本就能把环境全部搞定。

6.3 装了不生效怎么办

插件装上但没生效,多数情况不是插件本身坏了,而是 IDEA 的缓存机制没反应过来。我的排查顺序是:

  1. 先重启 IDEA。不少插件在安装时会提示“Restart IDE”,这一步不能省。
  2. 还是不行,File -> Invalidate Caches -> Invalidate and Restart。IDEA 的索引和缓存会重新构建,插件配置也会重新加载。
  3. 重启后仍找不到菜单,检查一下插件是否被禁用。Settings -> Plugins -> Installed,看对应插件有没有被勾选或者显示 Disabled。

还有一个非常容易忽略的点:IDEA 分 Ultimate、Community 等版本,个别插件对版本有要求。比如一些前端、数据库插件在社区版上功能受限。上面推荐的四款插件,在社区版上基本都能正常工作,这一点不用太担心。

7. 常见问题与排查技巧实录

写到这里,把这几款插件在实际使用里最常遇到的几个问题整理成一个速查表,遇到对号入座就行。

问题现象原因解法
Lombok 编译报错 “程序包lombok不存在”mvn 编译失败,IDEA 里却正常pom 里漏了依赖,或 annotationProcessorPaths 缺失按 2.2 节配置依赖
Lombok 装了但 getter/setter 不显示代码里方法照样能用,但不显示IDE 索引未更新Invalidate Caches 重启
Save Actions 格式化老项目整个 diff 全乱保存一个文件,git diff 几百行历史代码格式没统一先配 EditorConfig,再逐个文件启用
SonarLint 红色告警太多打开一个文件满屏红标全量规则全都生效只关注 Critical/Major,配置 Only changed files
插件市场搜不到某款插件搜索无结果网络或地区镜像问题尝试插件的官网直接下载 zip 离线安装
安装后右侧菜单没有对应功能右键看不到 String Manipulation没绑定快捷键或菜单层级参考 5.3 绑定快捷键,或到 Edit 菜单找入口

再补充几条排查思路。

遇到“插件装了但找不到”的情况,先看底部状态栏有没有报错,再找 idea.log 日志。日志通常放在:

  • Windows:%USERPROFILE%\AppData\Roaming\JetBrains\IntelliJIdea2024.3\log\idea.log
  • macOS:~/Library/Logs/JetBrains/IntelliJIdea2024.3/idea.log

打开日志搜索插件名,能看到具体的加载失败原因,多数是版本不兼容或者缺少依赖项。这个排查思路适用于所有 IDEA 插件。

另外,插件也不是装得越多越好。机器上是能装,但每次启动时插件都要加载,装了十几个冷门插件,IDEA 启动时间肉眼可见地变长。我个人的经验是,每装一个新插件之前,问自己一个问题:这个插件能不能让我一周之内至少省下 30 分钟?不能省就卸。能省的,值得花时间配置好。

还有一个小技巧,安装完所有插件后,建议通过 File -> Manage IDE Settings -> Export Settings 导出一份配置备份。换电脑或者重装系统时,一键导入,所有插件的快捷键、配置、主题全部恢复,省下半天时间。我自己就是重装了两三次系统之后才养成的这个习惯,非常值得养成。

这四款插件我到现在都留着,不是它们功能多花哨,而是它们各自解决了一个真问题:Lombok 帮我少写样板代码,SonarLint 帮我提前发现隐患,Save Actions 帮团队省去格式化的扯皮,String Manipulation 帮我省掉各种字符串杂活。都是“润物细无声”型的工具。如果你还没体验过其中某个,可以挑一款装上试试,坚持用两周,看自己还离不离得开它。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询