Maison  >  Article  >  Java  >  12 plug-ins d'idées pour améliorer votre efficacité de codage

12 plug-ins d'idées pour améliorer votre efficacité de codage

青灯夜游
青灯夜游avant
2022-09-02 11:05:462193parcourir

Cet article vous parlera des plug-ins 12 dans idea qui peuvent améliorer l'efficacité du codage. J'espère qu'il sera utile à tout le monde. 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

Il y avait encore une controverse à propos du lombok auparavant, quant à savoir s'il devait être utilisé dans des projets. Pour cette raison, j'ai également écrit un article spécial "Confus, devrait-il on utilise du lombok ? 》.

Maintenant, la nouvelle version d'idea intègre un plug-in Lombok, son utilisation est donc une tendance.

La raison pour laquelle j'ai mis lombok comme première introduction dans tout l'article est parce que cela peut vraiment m'aider à écrire beaucoup moins de code, en particulier dans les entités, les DTO, les VO et les BO.

Nous utilisons la classe User comme exemple. Pour définir un javabean auparavant, vous devez écrire le code suivant :

rrreee

La classe User comprend : les variables membres, les méthodes getter/setter, les méthodes constructeur, les égales et les méthodes hashCode.

À première vue, il y a pas mal de codes. Et il y a une autre question. Si le code de la classe User est modifié, par exemple : le champ age est remplacé par un type de chaîne ou le nom du champ name est modifié, doit-il modifier les variables membres associées, getter/setter. méthodes, constructeurs, etc. simultanément ? Modifier toutes les méthodes égales et hashCode ?

La bonne nouvelle est que l'utilisation du lombok peut résoudre ce problème. 🎜🎜S'il s'agit d'une version antérieure à idea2020.3, vous devez installer le plug-in suivant dans idea : 🎜🎜
Mais après idea2020.3, idea a une fonction lombok intégrée. 🎜🎜Avec le plug-in lombok, nous pouvons désormais réaliser les fonctions ci-dessus en écrivant simplement du code comme celui-ci dans l'idée : 🎜rrreee🎜C'est si simple, et vous pouvez vraiment écrire beaucoup moins de code. 🎜
🎜De plus, nous devons également introduire le package de dépendances de lombok dans le fichier pom du projet, sinon le projet ne fonctionnera pas. 🎜

2. Plugin Mybatis gratuit

🎜En Chine, mybatis est devenu le Le plus populaire Il s'agit d'un cadre de base de données grand public.Ce cadre est un cadre de persistance ORM semi-automatisé.Par rapport à un cadre de persistance entièrement automatisé tel que hibernate, il est plus flexible et offre des performances plus élevées. 🎜🎜Dans mybatis, nous devons définir nous-mêmes le mappeur et le fichier XML correspondant pour terminer la liaison. 🎜🎜Ici, nous prenons la table user comme exemple. Nous devons d'abord définir l'interface UserMapper : 🎜rrreee🎜 Ensuite, nous avons besoin du fichier de configuration UserMapper.xml : 🎜rrreee🎜Dans le fichier UserMapper.xml, l'espace de noms de la balise mapper. correspond au nom de l'interface UserMapper, et la balise insert id=insertUser, qui correspond à la méthode insertUser dans l'interface UserMapper. 🎜🎜Alors, comment pouvons-nous accéder rapidement à la méthode getUser dans le fichier UserMapper.xml via la méthode getUser dans la classe UserMapper du projet ? 🎜🎜Réponse : Cela nécessite l'utilisation du plug-in Plugin Mybatis gratuit. 🎜🎜🎜🎜Le plugin est installé Après cela, il y aura deux autres flèches vertes à gauche du nom de l'interface et du nom de la méthode de l'interface UserMapper. En cliquant sur les flèches, nous pouvons accéder à la balise mapper ou à l'instruction insertUser correspondant au fichier UserMapper.xml. 🎜🎜🎜🎜De plus, dans UserMapper Il y aura également une flèche verte sur le côté gauche de l'instruction insertUser dans le fichier .xml. Si nous cliquons sur la flèche, nous pouvons également accéder à la méthode insertUser de l'interface UserMapper. 🎜🎜🎜🎜Avec ce plug- dans , nous pouvons basculer librement entre mapper et xml, jouer librement et ne plus avoir à chercher comme avant. 🎜

3.Traduction

🎜Certains amis, dont moi-même, ne sont peut-être pas très bons en anglais (je viens de passer le CET-4). 🎜🎜Quand on nomme des variables ou des méthodes, il faut y réfléchir longuement. Surtout en lisant la documentation anglaise du JDK, j'ai rencontré des mots inhabituels, ce qui était vraiment déroutant. 🎜🎜La bonne nouvelle est que l'utilisation du plug-in : Traduction nous permet de voler librement dans le document. 🎜🎜🎜🎜InstalléTraduction, il existe un menu Traduction supplémentaire dans d'autres paramètres. 🎜🎜Cliquez sur ce menu : 🎜🎜🎜🎜🎜Dans la fenêtre de droite, vous pouvez choisir le logiciel de traduction. 🎜🎜Sélectionnez le document anglais qui doit être traduit : 🎜🎜🎜🎜🎜 Dans la fenêtre contextuelle contextuelle, sélectionnez l'option Traduction et la fenêtre suivante apparaîtra : 🎜


Un paragraphe anglais a été soudainement traduit en chinois, c'était trop cool.

4.Directives de codage Java d'Alibaba

Si vous êtes un ami engagé dans le développement Java, vous devez avoir lu le "Manuel de développement Java" d'Alibaba.

Ce manuel résume les problèmes que nous pouvons rencontrer dans notre processus de développement quotidien. Qu'il s'agisse des protocoles de programmation, des journaux d'exceptions, des tests unitaires, des protocoles de sécurité, de la base de données MySQL et de la structure du projet, ces six aspects standardisent le processus de développement et garantissent que nous pouvons écrire du code efficace et élégant.

Mais ces choses normatives peuvent difficilement atteindre les résultats escomptés simplement en s’appuyant sur la conscience des gens.

Afin de résoudre ce problème, Alibaba a lancé le plug-in Alibaba Java Coding Guidelines, qui peut détecter directement le code non standard. 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

Le plugin est installé Après cela, appuyez sur la touche de raccourci : Ctrl+Alt+Shift+J pour analyser l'intégralité du projet ou un seul fichier pour les conventions de codage.

Après la numérisation, il seront Les codes non standard sont classés de haut en bas.

Il existe actuellement trois niveaux affichés ci-dessous :

  • Crash du bloqueur
  • Critique
  • Majeur

Cliquez sur l'une des lignes de code non standard sur la gauche, la fenêtre de droite affichera immédiatement le code détaillé non standard, nous permettant de localiser rapidement le problème.

sympa.

🎜5. GenerateAllSetter🎜🎜🎜Souvent, nous devons attribuer une valeur à un objet s'il y a de nombreux paramètres, nous devons écrire beaucoup de settercode> ou <code>gettercode. 🎜🎜Y a-t-il un moyen de le faire en un seul clic ? 🎜🎜Réponse : Oui, utilisez le plug-in GenerateAllSetter. 🎜🎜🎜🎜Après avoir installé la prise -in , sur l'objet créé, appuyez sur la touche de raccourci : alt + enter. 🎜🎜Sélectionnez dans la fenêtre contextuelle : Générez tous les paramètres avec la valeur par défaut. 🎜🎜🎜🎜 sera généré automatiquement Le code suivant : 🎜🎜🎜🎜 Tout simplement Tellement pratique. 🎜

🎜6. SequenceDiagram🎜🎜🎜Lorsque nous lisons habituellement le code source, afin de trier la logique interne, nous avons souvent besoin de dessiner des diagrammes de séquence. . 🎜🎜Si nous dessinons directement, cela nous fera perdre beaucoup de temps et l'image dessinée risque de ne pas être correcte. 🎜🎜Vous pouvez utiliser : le plug-in SequenceDiagram. 🎜🎜🎜🎜Choisissez-en un en particulier Méthode, faites un clic droit et sélectionnez : option diagramme de séquence : 🎜🎜🎜🎜Après cela, le chronogramme apparaîtra : 🎜🎜🎜🎜A partir de maintenant, je peux devenir un maître du dessin, parfait. 🎜

🎜7. CheckStyle-IDEA🎜🎜🎜En termes de format de code, il y a de nombreux endroits auxquels nous devons prêter attention, tels que : les importations inutiles, l'absence de commentaires, la syntaxe. les erreurs et les méthodes trop longues, etc. 🎜🎜 Existe-t-il un moyen de détecter simultanément les problèmes ci-dessus dans l'idée ? 🎜🎜Réponse : utilisez le plug-in CheckStyle-IDEA. 🎜🎜CheckStyle-IDEA est un outil permettant de détecter si le format de code répond aux spécifications. Les plus couramment utilisées sont la spécification Google et la spécification Sun spécification. 🎜🎜🎜🎜🎜Après avoir installé le plug-in, l'option CheckStyle apparaîtra sous l'idée : 🎜🎜🎜🎜🎜Cliquez sur le bouton vert à gauche pour scanner le code. Au milieu, le motif du non-respect des spécifications du code est affiché. 🎜🎜Double-cliquez sur le code pour accéder directement au code spécifique : 🎜🎜🎜🎜<h2 id="8jrebel-and-xrebel"><strong>8.JRebel et </strong></h2>Et chaque redémarrage prend beaucoup de temps. <p></p>Existe-t-il un moyen de faire en sorte que la modification du code Java prenne effet immédiatement sans redémarrer le système ? <p></p>Réponse : utilisez le plug-in <code>JRebel et XRebel.

Comme le montre l'image :

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

Une fois l'installation terminée, il y aura deux boutons verts ici, et une option supplémentaire Sélectionnez les agents rebelles sur la droite :

L'un des boutons verts indique un projet de démarrage de déploiement à chaud, et l'autre indique un projet de démarrage de déploiement à chaud avec le débogage par défaut.

L'option Sélectionner les agents rebelles contient trois valeurs :

  • JRebel : Après avoir modifié le code, ne redémarrez pas le service et attendez-vous à ce que le code prenne effet directement.
  • XRebel : surveillez les performances de chaque partie du code pendant le processus de requête. Par exemple : temps d'exécution de la méthode, exceptions qui se produisent, temps d'exécution SQL, journal de sortie, temps d'exécution MQ, etc.
  • JRebel+XRebel : Après avoir modifié le code, ne redémarrez pas le service et surveillez le code.

9. Codota
🎜Pour être honnête, la fonction d'invite de code existante d'idea est déjà très puissante. 🎜🎜Mais si vous avez utilisé le plug-in Codota, cela rendra la vitesse d'écriture de votre code encore plus élevée. 🎜🎜🎜🎜Après avoir installé la prise -in , cela vous donnera quelques conseils lorsque nous écrirons du code : 🎜🎜 🎜Ces conseils sont basés sur les statistiques de l'IA et sont très précieux à titre de référence. 🎜

🎜10. GsonFormat🎜🎜🎜Plusieurs fois, je dois convertir les paramètres dans json en paramètres dans Entity Object . Ou convertissez les paramètres dans Entity Object en paramètres dans json. 🎜🎜Dans le passé, nous avions l'habitude de créer manuellement une variable et une copie de la variable. 🎜🎜Mais maintenant, la bonne nouvelle est que le plug-in GsonFormat de cette idée peut nous aider à y parvenir. 🎜🎜🎜🎜Après avoir installé la prise -in , créez d'abord une classe vide : 🎜🎜🎜🎜Appuyez sur la touche de raccourci : alt + s, la fenêtre suivante apparaîtra : 🎜🎜🎜🎜Entrez ensuite les données json dans cette fenêtre. 🎜🎜Cliquez sur le bouton OK et ces codes seront automatiquement générés : 🎜🎜 🎜C'est tellement beau. 🎜

🎜11. Rainbow Brackets🎜🎜🎜Lorsque nous écrivons habituellement du code, les parenthèses nous donnent beaucoup de maux de tête, surtout lorsque le code a beaucoup de logique et est imbriqué couche par couche. . 🎜🎜Il est difficile de dire d'un seul coup d'œil de quelle parenthèse commence le code et par quelle anti-parenthèse il se termine. 🎜🎜Y a-t-il un moyen de résoudre ce problème ? 🎜🎜Réponse : utilisez le plug-in Rainbow Brackets. 🎜🎜🎜Après avoir installé le plug- in, Brackets et anti-brackets seront automatiquement distingués par des couleurs différentes dans le code : 🎜🎜très visible et intuitif. 🎜

🎜12. CodeGlance🎜🎜🎜Parfois, nous lisons beaucoup de code, comme une classe contenant de nombreuses méthodes et variables membres. 🎜🎜Suivre de haut en bas, petit à petit, vous fera perdre beaucoup de temps. Alors, existe-t-il un moyen de trouver rapidement le code que vous souhaitez voir ? 🎜🎜Réponse : Oui, vous pouvez utiliser le plug-in CodeGlance. 🎜🎜🎜🎜🎜Après avoir installé le plug-in, la fenêtre suivante apparaîtra sur le côté droit du code : 🎜🎜🎜🎜🎜C'est une vignette du code, à travers laquelle nous pouvons changer de bloc de code très rapidement. 🎜

La dernière chose à dire (s'il vous plaît faites attention, ne me violez pas en vain)

Si cet article vous est utile ou inspirant, aidez-moi à scanner et à envoyer le code QR pour le suivre. Votre soutien signifie que. Je peux continuer à écrire.
Veuillez cliquer sur trois liens : aimer, retweeter et regarder.
Suivez le compte public : [Su San parle de technologie], répondez dans le compte public : les interviews, les artefacts de code, les manuels de développement, la gestion du temps ont de grands avantages pour les fans, et répondez : rejoignez le groupe, vous pouvez communiquer avec de nombreux seniors de BAT les entreprises étudient.

(Partage de vidéos d'apprentissage : Vidéo de programmation de base)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer