优雅的 Intellij IDEA - 3. 个人工作流 - 3.3. 代码编写
代码编写
在个人工作流中, 代码编写是人与 IDE 交互最复杂的阶段。下面笔者会从多个维度进行描述
代码重构
在编写代码的过程中,会遇到方法体过长 / 重复代码块 / 方法名称不合理等问题。
此时就需要对代码进行重构,常用的重构行为包括:方法重命名 / 提取方法 / 在类之间迁移方法等
更多的重构方式可以在上边栏的Refactor标签中查看
方法重命名
面对方法名称不合理的问题,需要同时变更调用者和方法本体的方法名称,一个一个变更非常麻烦,可以使用 Shift + F6 同时变更

提取方法
面对方法体过长, 重复代码块的问题,可以通过将代码提取到新方法的操作进行优化,快捷键为 Ctrl + Alt + M
被提取的代码中不得包含多了返回值,否则提取不了

在类之间迁移方法
当发现方法不适合放在某个类中,而适合放在另一个类中时,需要对该方法进行迁移。可以在方法体内使用 F6 进行迁移
对于实例方法,只能迁移到原类的成员变量中;对于静态方法没有这个限制

代码补全
IDEA 自带的代码补全功能
IDEA 自带代码补全功能,需要注意的是该代码补全功能不会全句搜索,只会搜索首字母及其相邻单词。比如:我们想搜 ProductEntity 类,输入 Pe 或者 Pre 可以搜出来,但搜 Pde 就搜不出来。
可以在设置中配置搜索时不匹配大小写,这样输入 pe 或者 pre 就可以搜出来。配置路径为:File | Settings | Editor | General | Code Completion
人工智能代码助手
Tabnine AI Code Completion 插件可以比 IDEA 自带代码补全功能更智能的代码提示,而且它会扫描我们的项目代码,从而给出更接近项目的代码提示
实测可以提高 10% 左右的编码效率

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

Mybatis
在 IDEA 的插件市场中,有很多 Mybatis 相关的插件,几乎所有相关插件笔者都用过,很多用起来比较舒服的插件都是收费的,也有很多优秀的免费插件慢慢的都不更新了,在这里笔者推荐几款免费的目前仍然活跃的插件
MyBatisX. 目前功能最全的免费插件,集成了几款停更的免费插件的功能,虽然功能还是没有收费的全,但基本功能都有,包括:1.mapper类和xml之间的跳转 2. 相关代码提示 3. 自动生成xml标签 4.mybatis generator Gui等

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

Lombok
虽然在对 Lombok 的使用上存在一些争议,但它确实显著的提高了大家的编码效率,而且 IDEA 在官方已经默默的集成了 Lombok 插件
虽然我不会说
Lombok值得使用,但这是事实 😉 -- 阿伟罗
@Accessors(chain = true) 让对象可以被链式创建,这样可以减少重复编码
@Data(staticConstructor = "of") 可以避免显式的 new 对象

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

Spring
IDEA 在很早以前就全方位支持了 Spring, 在这里就不多赘言了
浙公网安备 33010602011771号