优雅的 Intellij IDEA - 3. 个人工作流 - 3.3. 代码编写

代码编写

在个人工作流中, 代码编写是人与 IDE 交互最复杂的阶段。下面笔者会从多个维度进行描述

代码重构

在编写代码的过程中,会遇到方法体过长 / 重复代码块 / 方法名称不合理等问题。
此时就需要对代码进行重构,常用的重构行为包括:方法重命名 / 提取方法 / 在类之间迁移方法等

更多的重构方式可以在上边栏Refactor标签中查看

方法重命名

面对方法名称不合理的问题,需要同时变更调用者和方法本体的方法名称,一个一个变更非常麻烦,可以使用 Shift + F6 同时变更

5.gif

提取方法

面对方法体过长, 重复代码块的问题,可以通过将代码提取到新方法的操作进行优化,快捷键为 Ctrl + Alt + M

被提取的代码中不得包含多了返回值,否则提取不了

6.gif

在类之间迁移方法

当发现方法不适合放在某个类中,而适合放在另一个类中时,需要对该方法进行迁移。可以在方法体内使用 F6 进行迁移

对于实例方法,只能迁移到原类的成员变量中;对于静态方法没有这个限制

7.gif

代码补全

IDEA 自带的代码补全功能

IDEA 自带代码补全功能,需要注意的是该代码补全功能不会全句搜索,只会搜索首字母及其相邻单词。比如:我们想搜 ProductEntity 类,输入 Pe 或者 Pre 可以搜出来,但搜 Pde 就搜不出来。
可以在设置中配置搜索时不匹配大小写,这样输入 pe 或者 pre 就可以搜出来。配置路径为:File | Settings | Editor | General | Code Completion

人工智能代码助手

Tabnine AI Code Completion 插件可以比 IDEA 自带代码补全功能更智能的代码提示,而且它会扫描我们的项目代码,从而给出更接近项目的代码提示
实测可以提高 10% 左右的编码效率

63c9aadf09488ae628177dfd44bc9663.png

代码编写时常用的框架支持插件

MapStruct

MapStruct 是一个第三方库,主要用于不同类型对象的属性之间的复制,可以避免我们写很多重复代码,在代码可读性及可维护性上也优于 org.springframework.beans.BeanUtils, org.apache.commons.beanutils.PropertyUtils 等库
MapStruct Support 插件提供了对 MapStruct 在 IDE 层面上的支持。使我们可以在写 MapStruct 相关代码时得到精准的相关代码补全提示,相关错误和警告的提示,以及可以快速的进行专属代码重构

ae76491f44c3affee711c4b6fcc34557.png

Mybatis

在 IDEA 的插件市场中,有很多 Mybatis 相关的插件,几乎所有相关插件笔者都用过,很多用起来比较舒服的插件都是收费的,也有很多优秀的免费插件慢慢的都不更新了,在这里笔者推荐几款免费的目前仍然活跃的插件

  1. MyBatisX. 目前功能最全的免费插件,集成了几款停更的免费插件的功能,虽然功能还是没有收费的全,但基本功能都有,包括:1. mapper 类和 xml 之间的跳转 2. 相关代码提示 3. 自动生成 xml 标签 4. mybatis generator Gui

7.gif

  1. MyBatis Log Free. 对 MyBatisX 的补充,主要用于格式化 Mybatis 输出的 SQL 日志,提取成 SQL 语句,在需要的时候用起来非常舒服 😘

8.gif

Lombok

虽然在对 Lombok 的使用上存在一些争议,但它确实显著的提高了大家的编码效率,而且 IDEA 在官方已经默默的集成了 Lombok 插件

虽然我不会说 Lombok 值得使用,但这是事实 😉 -- 阿伟罗

@Accessors(chain = true) 让对象可以被链式创建,这样可以减少重复编码
@Data(staticConstructor = "of") 可以避免显式的 new 对象
a92999834701b1125ce94a41bfb6b6c0.png

@RequiredArgsConstructor + 静态成员变量可以避免写额外的 Spring 依赖注入代码
b6237b334d3bb9323a844149da1f6e80.png

Spring

IDEA 在很早以前就全方位支持了 Spring, 在这里就不多赘言了

posted @   1nfinity  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示