>  기사  >  Java  >  코딩 효율성을 향상시키는 12가지 아이디어 플러그인

코딩 효율성을 향상시키는 12가지 아이디어 플러그인

青灯夜游
青灯夜游앞으로
2022-09-02 11:05:462196검색

이 글에서는 코딩 효율성을 향상시킬 수 있는 idea12 플러그인에 대해 설명하겠습니다. idea中,能提升编码效率的12种插件,希望对大家有所帮助。

1. lombok

之前对lombok还有争议,到底该不该在项目中使用,为此我还专门写了一篇文章《迷茫了,我们该不该用lombok?》。

现在新版的idea已经内置了lombok插件,所以用它是一种趋势。

我之所以把lombok放在整篇文章的第一个介绍,是因为它真的可以帮我少写很多代码,特别是entity、DTO、VO、BO中的。

我们用User类举例,以前定义javabean需要写如下代码:

public class User {

    private Long id;
    private String name;
    private Integer age;
    private String address;

    public User() {

    }

    public User(Long id, String name, Integer age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public Long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Integer getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }


    public void setId(Long id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) returntrue;
        if (o == null || getClass() != o.getClass()) returnfalse;
        User user = (User) o;
        return Objects.equals(id, user.id) &&
                Objects.equals(name, user.name) &&
                Objects.equals(age, user.age) &&
                Objects.equals(address, user.address);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, address);
    }

    @Override
    public String toString() {
        return"User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

该User类中包含了:成员变量、getter/setter方法、构造方法、equals、hashCode方法。

咋一看,代码还是挺多的。而且还有个问题,如果User类中的代码修改了,比如:age字段改成字符串类型,或者name字段名称修改了,是不是需要同步修改相关的成员变量、getter/setter方法、构造方法、equals、hashCode方法全都修改一遍?

好消息是用lombok可以解决这个问题。

如果是idea2020.3之前的版本,需要在idea中安装如下插件:


但idea2020.3之后,idea已经内置了lombok的功能。

有了lombok插件,现在我们在idea只用这样写代码,就能实现上面的功能了:

@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class User {

    private Long id;
    private String name;
    private Integer age;
    private String address;
}

简直太轻松了,真的可以少写很多代码。

此外,我们还需要在项目的pom文件中,引入lombok的依赖包,不然项目会跑不起来。

2. Free Mybatis plugin

在国内mybatis已经成为了最主流的数据库框架了,该框架属于半自动化的ORM持久化框架,相对于hibernate这种全自动化的持久化框架更灵活,性能更高。

mybatis中,我们需要自己定义mapper和对应的xml文件完成绑定。

在这里我们以用户表为例,首先需要定义UserMapper接口:

public interface UserMapper {
	 int insertUser(UserModel user);
}

然后需要UserMapper.xml配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sue.jump.mappers.UserMapper">

    <sql id="selectUserVo">
        id, name, age, sex
     </sql>

    <insert id="insertUser" parameterType="com.sue.jump.model.UserModel">
        INSERT INTO user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null ">
                id,
            </if>
            <if test="name != null  and name != &#39;&#39;">
                name,
            </if>
            <if test="age != null ">
                age,
            </if>
            <if test="sex != null ">
                sex,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null ">
                #{id},
            </if>
            <if test="name != null  and name != &#39;&#39;">
                #{name},
            </if>
            <if test="age != null ">
                #{age},
            </if>
            <if test="sex != null ">
                #{sex},
            </if>
        </trim>
    </insert>
</mapper>

UserMapper.xml文件中,mapper标签的namespace对应UserMapper接口名,而insert标签的id=insertUser,正好对应UserMapper接口中的insertUser方法。

那么,在项目中如何通过UserMapper类中的getUser方法,能够快速访问UserMapper.xml文件中的getUser方法?

答:这就需要使用Free Mybatis plugin插件了。

安装了该插件之后,在UserMapper接口的接口名和方法名的左边,会多了两个绿色的箭头,我们点击该箭头,就能跳转到UserMapper.xml文件对应的mapper标签或者insertUser语句上。

此外,在UserMapper.xml文件的insertUser语句的左边,也会多出一个绿色的箭头,我们点击该箭头,也能跳转到UserMapper接口的insertUser方法上。

有了这个插件,我们就能在mapper和xml之间自由切换,自由玩耍了,再也不用像以前那样搜索来搜索去。

3.Translation

有些小伙伴,包括我自己可能英语不太好(我英语刚过四级)。

我们在给变量或者方法取名时,要想半天。特别是在阅读JDK英文文档时,遇到了一些生僻字,简直头大。

有个好消息是使用:Translation插件,能够让我们在文档中自由飞翔。

安装完Translation

1.lombok

이전에도 Lombok을 프로젝트에 사용해야 하는지에 대한 논란이 있었습니다. 이러한 이유로 "Confused, Should"라는 특별 기사도 썼습니다. 우리는 롬복을 사용하나요? 》.

이제 새 버전의 idea에는 롬복 플러그인이 내장되어 있어 이를 사용하는 것이 추세입니다.

전체 기사에서 첫 번째 소개로 lombok을 넣은 이유는 특히 엔터티, DTO, VO 및 BO에서 코드를 훨씬 적게 작성하는 데 도움이 되기 때문입니다.

User 클래스를 예로 사용합니다. 이전에는 Javabean을 정의하려면 다음 코드를 작성해야 했습니다.

rrreee

User 클래스에는 멤버 변수, getter/setter 메서드, 생성자 메서드, equals 및 hashCode 메서드가 포함됩니다. .

얼핏 보면 코드가 꽤 많아요. 그리고 또 다른 질문이 있습니다. 예를 들어 age 필드가 문자열 유형으로 변경되거나 name 필드 이름이 수정되는 등 User 클래스의 코드가 수정되면 관련 멤버 변수인 getter/setter를 수정해야 합니까? 메소드, 생성자 등을 동시에 수정하시겠습니까?

좋은 소식은 롬복을 사용하면 이 문제를 해결할 수 있다는 것입니다. 🎜🎜idea2020.3 이전 버전이라면 idea에 다음 플러그인을 설치해야 합니다: 🎜🎜
하지만 idea2020.3 이후에는 아이디어에 롬복 기능이 내장되어 있습니다. 🎜🎜lombok 플러그인을 사용하면 이제 다음과 같은 코드를 작성하여 위의 기능을 구현할 수 있습니다. 🎜rrreee🎜너무 쉽고 코드를 훨씬 적게 작성할 수 있습니다. 🎜
🎜또한 프로젝트의 pom 파일에 lombok의 종속성 패키지를 도입해야 합니다. 그렇지 않으면 프로젝트가 실행되지 않습니다. 🎜

2. 무료 Mybatis 플러그인

🎜중국에서는 mybatis가 가장 인기 있는 주류 데이터베이스 프레임워크입니다. 이 프레임워크는 최대 절전 모드와 같은 완전 자동화된 지속성 프레임워크에 비해 더 유연하고 더 높은 성능을 제공합니다. 🎜🎜mybatis에서 바인딩을 완료하려면 매퍼와 해당 xml 파일을 직접 정의해야 합니다. 🎜🎜여기에서는 사용자 테이블을 예로 들어 보겠습니다. 먼저 UserMapper 인터페이스를 정의해야 합니다. 🎜rrreee🎜 그런 다음 UserMapper.xml 구성 파일이 필요합니다. 🎜rrreee🎜UserMapper.xml 파일에서 매퍼 태그의 네임스페이스 UserMapper 인터페이스 이름에 해당하고 삽입 태그 id=insertUser에 해당하며 이는 UserMapper 인터페이스의 insertUser 메소드에 해당합니다. 🎜🎜그렇다면 프로젝트 내 UserMapper 클래스의 getUser 메소드를 통해 UserMapper.xml 파일의 getUser 메소드에 어떻게 빠르게 접근할 수 있을까요? 🎜🎜답변: 무료 Mybatis 플러그인 플러그인을 사용해야 합니다. 🎜🎜🎜🎜플러그인이 설치되었습니다 그 후 UserMapper 인터페이스의 인터페이스 이름과 메소드 이름 왼쪽에 두 개의 녹색 화살표가 더 있을 것입니다. 화살표를 클릭하면 UserMapper.xml 파일에 해당하는 매퍼 태그 또는 insertUser 문으로 이동할 수 있습니다. 🎜🎜🎜🎜또한 UserMapper .xml 파일의 insertUser 문의 왼쪽에도 녹색 화살표가 있습니다. 화살표를 클릭하면 UserMapper 인터페이스의 insertUser 메소드로 이동할 수도 있습니다. 🎜🎜🎜🎜이 플러그를 사용하면- 에서는 매퍼와 XML 사이를 자유롭게 전환하고 자유롭게 플레이할 수 있으며 더 이상 이전처럼 앞뒤로 검색할 필요가 없습니다. 🎜

3.번역

🎜나를 포함한 일부 친구들은 영어를 잘 하지 못할 수도 있습니다(저는 CET-4를 막 통과했습니다). 🎜🎜변수나 메소드의 이름을 지을 때 우리는 오랫동안 그것에 대해 생각해야 합니다. 특히 JDK 영어 문서를 읽을 때 흔하지 않은 단어를 접하게 되었는데, 정말 혼란스러웠습니다. 🎜🎜좋은 소식은 Translation 플러그인을 사용하면 문서 내에서 자유롭게 이동할 수 있다는 것입니다. 🎜🎜🎜🎜설치번역 플러그인의 다른 설정에는 추가 번역 메뉴가 있습니다. 🎜🎜이 메뉴를 클릭하세요: 🎜🎜🎜🎜🎜오른쪽 창에서 번역 소프트웨어를 선택할 수 있습니다. 🎜🎜번역이 필요한 영어 문서 선택: 🎜🎜🎜🎜🎜 마우스 오른쪽 버튼 클릭 팝업 창에서 번역 옵션을 선택하면 다음 창이 나타납니다. 🎜


영어 문단이 갑자기 중국어로 번역되서 너무 멋있었어요.

4.Alibaba Java 코딩 지침

Java 개발에 종사하는 친구라면 Alibaba의 "Java 개발 매뉴얼"을 읽어 보셨을 것입니다.

이 매뉴얼에는 일상적인 개발 과정에서 발생할 수 있는 문제가 요약되어 있습니다. 프로그래밍 프로토콜, 예외 로그, 단위 테스트, 보안 프로토콜, MySQL 데이터베이스 및 프로젝트 구조에서 이러한 6가지 측면은 개발 프로세스를 표준화하고 효율적이고 우아한 코드를 작성할 수 있도록 보장합니다.

그러나 이러한 규범적인 것만으로는 사람들의 의식에만 의존해서는 기대한 결과를 거의 얻을 수 없습니다.

이 문제를 해결하기 위해 Alibaba는 비표준 코드를 직접 감지할 수 있는 Alibaba Java 코딩 지침 플러그인을 출시했습니다. Alibaba Java Coding Guidelines插件,能够通过该插件,直接查出不合规范的代码。

安装了该插件之后,按下快捷键:Ctrl+Alt+Shift+J,可以可对整个项目或单个文件进行编码规约扫描。

扫描后会将不规范的代码按从高到低。

目前有三个等级显示在下方:

  • Blocker 崩溃
  • Critical 严重
  • Major 重要

点击左边其中一个不规范的代码行,右边窗口会立刻显示不规范的详细代码,便于我们快速定位问题。

nice。

5. GenerateAllSetter

很多时候,我们需要给某个对象赋值,如果参数比较多的话,需要手写大量的setter或者getter代码。

有没有办法一键搞定呢?

答:有,使用GenerateAllSetter插件。

安装完插件之后,在创建的对象上,按快捷键下:alt + enter

在弹出的窗口中选择:Generate all setter with default value。

就会自动生成如下代码:

简直太方便了。

6. SequenceDiagram

我们平时在阅读源码时,为了梳理清楚内部逻辑,经常需要画一些时序图

如果我们直接画,会浪费很多时间,而且画的图不一定正确。

这时可以使用:SequenceDiagram插件。

选择具体某个方法,右键选择:sequence diagram选项:

之后,会出现时序图:

从此以后,能够成为画图高手了,完美。

7. CheckStyle-IDEA

在代码格式方面,有许多地方,需要我们注意,比如:无用导入、没写注释、语法错误、方法太长等等。

有没有办法,可以在idea中,一次性检测出上面的这些问题呢?

答:使用CheckStyle-IDEA插件。

CheckStyle-IDEA是一个检测代码格式是否满足规范的工具,其中用得比较多的是Google规范和Sun

플러그인이 설치되었습니다 그런 다음 단축키 Ctrl+Alt+Shift+J를 눌러 전체 프로젝트 또는 단일 파일에서 코딩 규칙을 검색하세요.

스캔 후, 비표준 코드는 높은 것부터 낮은 것 순으로 정렬됩니다.

현재 아래에는 세 가지 수준이 표시됩니다:

  • 차단 충돌
  • 심각
  • 심각

에서 비표준 코드 줄 중 하나를 클릭하세요. 왼쪽, 오른쪽 창에는 비표준 세부 코드가 즉시 표시되므로 문제를 빠르게 찾을 수 있습니다.

좋아요.

🎜5.GenerateAllSetter🎜🎜🎜객체에 값을 할당해야 하는 경우가 많으므로 setter를 많이 작성해야 합니다. code> 또는 <code>getter코드. 🎜🎜클릭 한 번으로 할 수 있는 방법이 있나요? 🎜🎜답변: 예, GenerateAllSetter 플러그인을 사용하세요. 🎜🎜🎜🎜플러그 설치 후 -in , 생성된 개체에서 단축키 alt + enter를 누릅니다. 🎜🎜팝업 창에서 선택: 기본값으로 모든 설정자를 생성합니다. 🎜🎜🎜🎜가 자동으로 생성됩니다 다음 코드: 🎜🎜🎜🎜 정말 편리합니다. 🎜

🎜6. SequenceDiagram🎜🎜🎜우리는 보통 소스코드를 읽을 때 내부 로직을 정리하기 위해 시퀀스 다이어그램을 그려야 하는 경우가 많습니다. . 🎜🎜직접 그리면 시간낭비도 많이 되고, 그린 그림이 정확하지 않을 수도 있습니다. 🎜🎜다음을 사용할 수 있습니다: SequenceDiagram 플러그인. 🎜🎜🎜🎜특정 항목 선택 방법, 마우스 오른쪽 버튼을 클릭하고 선택: 시퀀스 다이어그램 옵션: 🎜🎜🎜🎜이후 타이밍 다이어그램이 나타납니다: 🎜🎜🎜🎜이제부터 그림 달인이 될 수 있어요, 완벽해요. 🎜

🎜7. CheckStyle-IDEA🎜🎜🎜코드 형식에 있어서는 쓸모없는 import, 주석 없음, 구문 등 주의해야 할 부분이 많습니다. 오류, 너무 긴 메소드 등 🎜🎜아이디어에서 위의 문제점을 한번에 감지할 수 있는 방법이 없을까요? 🎜🎜답변: CheckStyle-IDEA 플러그인을 사용하세요. 🎜🎜CheckStyle-IDEA는 코드 형식이 사양을 충족하는지 감지하는 도구입니다. 가장 일반적으로 사용되는 것은 Google 사양과 Sun입니다. > 사양. 🎜🎜🎜🎜🎜플러그인을 설치하면 아이디어 아래에 CheckStyle 옵션이 나타납니다. 🎜🎜🎜🎜🎜코드를 스캔하려면 왼쪽의 녹색 버튼을 클릭하세요. 중간에는 코드 사양을 준수하지 않은 이유가 표시됩니다. 🎜🎜특정 코드로 직접 이동하려면 코드를 두 번 클릭하세요. 🎜🎜🎜🎜

8.JRebel 그리고

그리고 다시 시작할 때마다 많은 시간이 걸립니다.

시스템을 다시 시작하지 않고 Java 코드 수정 사항을 즉시 적용할 수 있는 방법이 있나요?

답변: JRebel 및 XRebel 플러그인을 사용하세요.

그림에 표시된 대로:

JRebel and XRebel插件。

如图:

安装完成之后,这里会有两个绿色的按钮,并且在右边多了一个选项Select Rebel Agents:


其中一个绿色的按钮,表示热部署启动项目,另外一个表示用debug默认热部署启动项目。

Select Rebel Agents选项中包含三个值:

  • JRebel:修改完代码,不重启服务,期望代码直接生效。
  • XRebel:请求过程中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL执行时间,输出的Log,MQ执行时间等。
  • JRebel+XRebel:修改完代码,不重启服务,并且监控代码。

9. Codota

说实话,idea现有的代码提示功能,已经很强大了。

但如果你使用过Codota插件,它会让你写代码的速度更上一层楼。

安装完插件之后,我们在写代码时,它会给你一些提示:


这些提示是基于ai统计出来的,非常有参考价值。

10. GsonFormat

很多时候,我需要把json中的参数,转换成实体对象中的参数。或者把实体对象中的参数,转换成json中的参数。

以前我们都是手动一个变量,一个变量的拷贝的。

但现在有个好消息是,idea的GsonFormat插件可以帮我们完成这件事。

安装完插件之后,先创建一个空类:

按下快捷键:alt + s,会弹出下面这个窗口:

然后在该窗口中,录入json数据。

点击确定按钮,就会自动生成这些代码:


简直帅呆了。

11. Rainbow Brackets

我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。

一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。

有没有办法解决这个问题呢?

答:使用Rainbow Brackets插件。


安装完插件之后,括号和反括号,在代码中会自动按照不同颜色做区分:

非常显目,非常直观。

12. CodeGlance

有些时候,我们阅读的代码很多,比如某个类中包含的方法和成员变量很多。

从上往下,一点点往下翻,会浪费很多时间。那么有没有办法,能够快速翻到想看的代码呢?

答:有,可以使用CodeGlance

설치가 완료되면 여기에 두 개의 녹색 버튼이 표시되고 오른쪽에 추가 옵션인 반란군 요원 선택이 표시됩니다:

녹색 버튼 중 하나는 핫 배포 시작 프로젝트를 나타내고, 다른 버튼은 디버그 기본값이 있는 핫 배포 시작 프로젝트를 나타냅니다.

Select Rebel Agents 옵션에는 세 가지 값이 포함되어 있습니다.

  • JRebel: 코드를 수정한 후 서비스를 다시 시작하지 말고 코드가 직접 적용되기를 기대하세요.
  • XRebel: 요청 프로세스 중 코드 각 부분의 성능을 모니터링합니다. 예: 메소드 실행 시간, 발생한 예외, SQL 실행 시간, 출력 로그, MQ 실행 시간 등
  • JRebel+XRebel: 코드 수정 후 서비스를 다시 시작하지 말고 코드를 모니터링하세요.

9. Codota
🎜솔직히 기존 아이디어의 코드 프롬프트 기능은 이미 매우 강력합니다. 🎜🎜하지만 Codota 플러그인을 사용했다면 코드 작성 속도가 더욱 빨라질 것입니다. 🎜🎜🎜🎜플러그 설치 후 -in, 코드를 작성할 때 몇 가지 팁을 제공합니다: 🎜🎜 🎜이 팁은 AI 통계를 기반으로 하며 참고용으로 매우 유용합니다. 🎜

🎜10.GsonFormat🎜🎜🎜 json의 매개변수를 Entity Object의 매개변수로 변환해야 하는 경우가 많습니다. 또는 Entity Object의 매개변수를 json의 매개변수로 변환하세요. 🎜🎜과거에는 수동으로 변수를 만들고 변수의 복사본을 만들곤 했습니다. 🎜🎜하지만 이제 좋은 소식은 아이디어의 GsonFormat 플러그인이 이 작업을 수행하는 데 도움이 될 수 있다는 것입니다. 🎜🎜🎜🎜플러그 설치 후 -in , 먼저 빈 클래스를 만듭니다: 🎜🎜🎜🎜단축키 alt + s를 누르면 다음 창이 나타납니다: 🎜🎜🎜🎜그런 다음 이 창에 json 데이터를 입력하세요. 🎜🎜확인 버튼을 클릭하면 다음 코드가 자동으로 생성됩니다: 🎜🎜 🎜너무 멋있어요. 🎜

🎜11. Rainbow Brackets🎜🎜🎜일반적으로 코드를 작성할 때 대괄호는 우리에게 많은 골칫거리를 안겨줍니다. 특히 코드에 로직이 많고 레이어별로 중첩되어 있을 경우 더욱 그렇습니다. . 🎜🎜코드가 어떤 괄호로 시작하고 어떤 대괄호로 끝나는지 한눈에 알기 어렵습니다. 🎜🎜이 문제를 해결할 방법이 있나요? 🎜🎜답변: Rainbow Brackets 플러그인을 사용하세요. 🎜🎜🎜플러그 설치 후- 에서 대괄호와 대괄호는 코드에서 서로 다른 색상으로 자동으로 구분됩니다: 🎜🎜매우 눈에 띄고 직관적입니다. 🎜

🎜12. CodeGlance🎜🎜🎜때때로 우리는 많은 메소드와 멤버 변수를 포함하는 클래스와 같은 많은 코드를 읽습니다. 🎜🎜위에서 아래로 조금씩 따라가다 보면 시간이 많이 낭비됩니다. 그렇다면 보고 싶은 코드를 빠르게 찾을 수 있는 방법은 없을까요? 🎜🎜답변: 예, CodeGlance 플러그인을 사용할 수 있습니다. 🎜🎜🎜🎜🎜플러그인을 설치하면 코드 오른쪽에 다음 창이 나타납니다. 🎜🎜🎜🎜🎜코드 블록을 매우 빠르게 전환할 수 있는 코드 썸네일입니다. 🎜

마지막으로 할 말(주의하세요. 저를 헛되이 매춘하지 마세요)

이 기사가 도움이 되거나 영감을 주신다면 QR 코드를 스캔하여 보내주세요. 계속해서 쓰는 것이 가장 큰 동기다.
좋아요, 리트윗, 시청 세가지 링크를 눌러주세요.
공개 계정 팔로우: [기술에 대해 이야기하는 수산], 공개 계정에서 답변: 인터뷰, 코드 아티팩트, 개발 매뉴얼 및 시간 관리는 팬 혜택이 큽니다. 또한 답변: 그룹에 가입하면 많은 선배들과 소통할 수 있습니다. 큰 BAT 회사를 연구합니다.

(학습 영상 공유: 기본 프로그래밍 영상)

위 내용은 코딩 효율성을 향상시키는 12가지 아이디어 플러그인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제