【优雅代码】09-idea断点、插件、模板合集

简介: 用好idea可以辅助程序员更快的开发,从效率和bug上都能取得更优秀的成绩

【优雅代码】09-idea断点、插件、模板合集

欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在 github目录收录。
屏幕前的 大帅比大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。

1.背景

用好idea可以辅助程序员更快的开发,从效率和bug上都能取得更优秀的成绩

2.ideaDebug

简单的或者意义不大的就不介绍了

// 测试代码如下
static class TestForIdea {
    public String name;
}

public static int test1() {
    int z = 0;
    for (int i = 0; i < 10; i++) {
        log.info(String.valueOf(i));
        z = i;
    }
    List<Integer> collect = Stream.of(1, 4, 6).filter(a -> (a & 1) == 1).map(a -> a + a)
            .collect(Collectors.toList());
    TestForIdea testForIdea = new TestForIdea();
    testForIdea.name = "1";
    testForIdea.name = "2";
    return z;
}

2.1强制回退

一般调试程序的时候会有错误数据,当已知数据错误的时候为了避免入库可以使用该方法
forceReturn

2.2丢弃当前栈帧并回退

当进入某个method后过了一个断点需要重新观察再次进入该method时可以使用该方案
dropFrame

2.3debug时修改变量

当进入某个method调试时因为过程过于复杂不易于修改源头数据,则可以直接修改最终返回数据即可
setValue

2.4debug时输出表达式

当需要执行复杂代码操作或者查看深层变量可以使用该方法
evaluate

2.5stream流断点

虽然stream流简化了很多代码,但代码调试是真的什么都看不到,用该方法可以将执行链完整显示
TraceCurrentStreamChain

2.6对象属性监控

有时候代码多起来不知道某个值在什么时候变了可以用该方法监控,非常好用
setValue

2.7打印当前栈信息

有些时候某个方法被多个地方调用需要打印栈(调用链)可以使用该方式
printStack1
printStack2

2.8指定属性进入断点

在for循环中经常会值过多找不到特定值,这时候使用该方式精准断点
specialValue

2.9多线程调试

有时候调试多线程需要查看每个线程的运行情况,实际因为并行断点并不能查看每个线程可能就直接过去了,可以采用如下方法
ThreadFrame
但更多的时候需要盯着一个线程看,参考上一个方法
ThreadValue

3.idea设置

  1. 设置悬浮提示

Preferences | Editor | General | Code Completion->勾选Show quick documentation
ThreadValue

  1. 自动导入包

Preferences | Editor | General | Auto Import->勾选Optimize imports on the fly
ThreadValue

  1. 去掉import *

Preferences | Editor | Code Style | Java | imports->class count...和 Names count...都改大即可
import

  1. 设置自定义模板
  • Preferences | Editor | Live Templates->右侧add新增组->然后再新增模板
  • 方法注释
/**
 * description
 * 
$params$
 * @return {@link $returns$}
 * @author seal 876651109@qq.com
 * @date $date$ $time$
 */
Name Expression
params groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\[ \\] \\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\r\n' : '')}; return result", methodParameters())
returns methodReturnType()
date date()
time time()

因为md格式问题在这里重新输出下params:

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n' : '')}; return result", methodParameters())
  • lombok注释
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@ToString(callSuper = true)
@NoArgsConstructor
@Builder
@JsonInclude(JsonInclude.Include.NON_EMPTY)
  • log日志注释,打印出行号比较省心,不用给每次日志的关键字起名字
log.info("$methodeName$:$line$line:{}","")
Name Expression
methodeName methodeName()
line lineNumber()
  1. 序列化提示

Preferences | Editor | Inspections | serializable ->勾选class without 'serialVersionUID'
serializable

  1. properties编码

propertiesUTF8
Editor | File Encodings->勾选 Transp....

4.idea插件

这部分推荐的比较少,个人在用的不止这几个

  1. lombok

主要用@slfj和javaBean相关的注解,插入后可以再用idea反编译成实体代码,非常舒适

  1. free mybaties

最舒适的功能是辅助检查xml的错误,当然跳转这功能也很给力

  1. alibabacode

规范代码,每次上线前可以用一下,能处理掉一些bug

  1. maven helper

maven的优秀伙伴,但是越发觉得maven臃肿了,项目体量一上来jar包冲突惨不忍睹

  1. jclasslib

学习字节码的好帮手
ThreadValue

5.idea快捷键

快捷键 介绍
Ctrl + Alt + L 格式化代码,代码就是我们写的诗,至少雷军大大也是这么说的
Ctrl + C CV大法好
Ctrl + V CV大法好
Ctrl + Z 撤销
Ctrl + F 当前页查找
Ctrl +shift+ F 全局查找,还能选正则和文件格式,非常舒心,而且可以查jar包里面的东西
shift+shift 全局查找方法,能查jar包里面的方法,很好用
Ctrl + Alt + 左方向键/右方向键 前进/后退到上一个操作的地方
CTRL+ALT+T 方法块进行try/catch
CTRL+shift+T 创建单元测试

6.idea辅助功能

  1. 查看方法调用链

导航窗navigate->Call Hierarchy
ThreadValue

  1. 优化代码

右键项目->analyze

  1. 查找未使用的方法

导航窗Analyze->run inspection by name->输入unused declaration

相关文章
|
6天前
idea的yapi插件使用详解
idea的yapi插件使用详解
9 0
|
7天前
|
uml
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
在IDEA中加速工程学习与审查,提升代码质量和维护性,关键操作包括:使用&quot;Structure&quot;浏览工程结构,通过&quot;Find Usages&quot;查找类、方法或变量引用,借助&quot;Show Local Changes As UML&quot;展示UML图。遵循从整体到局部的UML图学习,再到具体代码的详细探索,可系统理解设计理念。详情参考[IDEA UML教程](https://blog.csdn.net/weixin_44701426/article/details/124598053)。
16 1
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
|
12天前
|
JSON Java Maven
IDEA开发过程中常用插件必备
本文介绍了提升IntelliJ IDEA开发效率的几个插件:Codota用于强大代码补全;Auto filling Java call arguments自动填充函数参数,节省手动填充时间;GsonFormat能快速将JSON转换为Java实体类;Rainbow Brackets帮助识别括号所属代码块;Maven Helper提供高效查看和分析Maven依赖树功能;Key Promoter X提醒使用快捷键代替鼠标操作;最后还分享了如何设置背景图片以提升编码心情。
|
13天前
|
XML SQL Java
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
|
13天前
|
人工智能 自然语言处理 Java
用智谱 GLM-4大模型开发自己的IDEA插件
V 哥建议研究大模型先从研究开放 API 开始,作为程序员的你觉对不是什么难事,通过研究 API 的过程中,可以让你更加了解大模型的原理,当然想要更深入的理解,需要对开源大模型的源码进行研究,根据个人的技术能力,量力而行。研究 API 是第一步,目前热招的岗位中,就有基于大模型开放 API 做应用开发的,大家可以在招聘站点上具体看看职位要求。
用智谱 GLM-4大模型开发自己的IDEA插件
|
13天前
|
人工智能 自然语言处理 IDE
如何让阿里云AI001号员工帮我写代码(含IDEA插件使用)
AI 智能时代,将改变所有人的思维方式,学习方式,更注重人的创造力和思考力,如果你懒,你将会被 AI 替代,如果你只想干简单不用动脑的活,你将会被 AI 替代,如果你只会打螺丝,更会被 AI 替代。当下的 AI 人工智能时代,被认为是第四次工业革命的到来,我们更应该看到的是机会,而非跳进焦虑、困惑、悲观的一群人潮中。
|
14天前
|
人工智能 Java 数据库连接
推荐51个 IDEA 常用的插件
在日常撸代码的时候,相信兄弟们在IDEA 中用到不少插件,利用插件,不仅可以提高工具效率,撸起代码来,也格外的娃哈哈……
|
17天前
IDEA的安装与删除插件
IDEA的安装与删除插件
20 1
|
4天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
5天前
|
存储 IDE Java
IntelliJ IDEA 安装及配置详细教程
IntelliJ IDEA 安装及配置详细教程
18 0