优雅的 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
, 在这里就不多赘言了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)