Heim > Java > javaLernprogramm > 12 Ideen-Plug-ins zur Verbesserung Ihrer Codierungseffizienz

12 Ideen-Plug-ins zur Verbesserung Ihrer Codierungseffizienz

青灯夜游
Freigeben: 2022-09-02 11:05:46
nach vorne
2220 Leute haben es durchsucht

In diesem Artikel geht es um die 12-Plugins in idea, die die Codierungseffizienz verbessern können. Ich hoffe, dass er für alle hilfreich ist. 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 + '\'' +
                '}';
    }
}
Nach dem Login kopieren

该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;
}
Nach dem Login kopieren

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

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

2. Free Mybatis plugin

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

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

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

public interface UserMapper {
	 int insertUser(UserModel user);
}
Nach dem Login kopieren

然后需要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>
Nach dem Login kopieren

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

Früher gab es noch Kontroversen darüber, ob Lombok in Projekten verwendet werden sollte. Aus diesem Grund habe ich auch einen speziellen Artikel geschrieben: „Verwirrt, sollte Wir benutzen Lombok? 》.

Jetzt verfügt die neue Version von Idea über ein integriertes Lombok-Plug-in, daher liegt die Verwendung im Trend.

Der Grund, warum ich Lombok als erste Einführung im gesamten Artikel angegeben habe, ist, dass es mir wirklich helfen kann, viel weniger Code zu schreiben, insbesondere in Entitäten, DTOs, VOs und BOs.

Wir verwenden die User-Klasse als Beispiel. Um eine Javabean zu definieren, mussten Sie zuvor den folgenden Code schreiben:

rrreee

Die User-Klasse umfasst: Mitgliedsvariablen, Getter/Setter-Methoden, Konstruktormethoden, Equals und HashCode-Methoden .

Auf den ersten Blick gibt es ziemlich viele Codes. Und es gibt noch eine weitere Frage: Wenn der Code in der Benutzerklasse geändert wird, zum Beispiel: Das Altersfeld wird in einen Zeichenfolgentyp geändert oder der Name des Feldes wird geändert. Müssen dann die zugehörigen Mitgliedsvariablen Getter/Setter geändert werden? Methoden, Konstruktoren usw. gleichzeitig ändern?

Die gute Nachricht ist, dass die Verwendung von Lombok dieses Problem lösen kann. 🎜🎜Wenn es sich um eine Version vor idea2020.3 handelt, müssen Sie das folgende Plug-in in idea installieren: 🎜🎜
Aber nach idea2020.3 verfügt idea über eine integrierte Lombok-Funktion. 🎜🎜Mit dem Lombok-Plug-in können wir jetzt die oben genannten Funktionen erreichen, indem wir theoretisch einfach Code wie diesen schreiben: 🎜rrreee🎜Es ist so einfach und Sie können wirklich viel weniger Code schreiben. 🎜
🎜Darüber hinaus müssen wir auch das Abhängigkeitspaket von Lombok in die POM-Datei des Projekts einführen, sonst wird das Projekt nicht ausgeführt. 🎜

2. Kostenloses Mybatis-Plugin

🎜In China ist mybatis das Am beliebtesten ist es ein Mainstream-Datenbank-Framework. Im Vergleich zu einem vollautomatischen Persistenz-Framework wie Hibernate ist es flexibler und leistungsstärker. 🎜🎜In mybatis müssen wir den Mapper und die entsprechende XML-Datei selbst definieren, um die Bindung abzuschließen. 🎜🎜Hier nehmen wir die Benutzertabelle als Beispiel. Zuerst müssen wir die UserMapper-Schnittstelle definieren: 🎜rrreee🎜 Dann benötigen wir die UserMapper.xml-Konfigurationsdatei: 🎜rrreee🎜In der UserMapper.xml-Datei den Namensraum des Mapper-Tags entspricht dem UserMapper-Schnittstellennamen und dem Einfügetag id=insertUser, das der insertUser-Methode in der UserMapper-Schnittstelle entspricht. 🎜🎜Wie können wir also über die getUser-Methode in der UserMapper-Klasse im Projekt schnell auf die getUser-Methode in der Datei UserMapper.xml zugreifen? 🎜🎜Antwort: Hierfür ist die Verwendung des Plug-ins Kostenloses Mybatis-Plugin erforderlich. 🎜🎜🎜🎜Das Plugin ist installiert Danach werden links neben dem Schnittstellennamen und dem Methodennamen der UserMapper-Schnittstelle zwei weitere grüne Pfeile angezeigt. Durch Klicken auf die Pfeile können wir zum Mapper-Tag oder zur insertUser-Anweisung springen, die der Datei UserMapper.xml entspricht. 🎜🎜🎜🎜Außerdem in UserMapper Auf der linken Seite der insertUser-Anweisung in der .xml-Datei befindet sich außerdem ein grüner Pfeil. Wenn wir auf den Pfeil klicken, können wir auch zur insertUser-Methode der UserMapper-Schnittstelle springen. 🎜🎜🎜🎜Mit diesem Plug- In können wir frei zwischen Mapper und XML wechseln, frei spielen und müssen nicht mehr wie zuvor suchen. 🎜

3.Translation

🎜Einige Freunde, darunter auch ich, sind möglicherweise nicht sehr gut in Englisch (ich habe gerade CET-4 bestanden). 🎜🎜Wenn wir Variablen oder Methoden benennen, müssen wir lange darüber nachdenken. Besonders beim Lesen der englischen JDK-Dokumentation bin ich auf einige ungewöhnliche Wörter gestoßen, was wirklich verwirrend war. 🎜🎜Die gute Nachricht ist, dass wir mit dem Plug-in Translation frei im Dokument navigieren können. 🎜🎜🎜🎜InstalliertÜbersetzung-Plugin gibt es in anderen Einstellungen ein zusätzliches Übersetzungsmenü. 🎜🎜Klicken Sie auf dieses Menü: 🎜🎜🎜🎜🎜Im Fenster rechts können Sie die Übersetzungssoftware auswählen. 🎜🎜Wählen Sie das englische Dokument aus, das übersetzt werden muss: 🎜🎜🎜🎜🎜 Wählen Sie im Popup-Fenster mit der rechten Maustaste die Option „Übersetzung“ und das folgende Fenster wird angezeigt: 🎜


Ein englischer Absatz wurde plötzlich ins Chinesische übersetzt, es war so cool.

4.Alibaba Java Coding Guidelines

Wenn Sie ein Freund sind, der sich mit Java-Entwicklung beschäftigt, müssen Sie Alibabas „Java Development Manual“ gelesen haben.

Dieses Handbuch fasst die Probleme zusammen, auf die wir in unserem täglichen Entwicklungsprozess stoßen können. Von Programmierprotokollen, Ausnahmeprotokollen, Unit-Tests, Sicherheitsprotokollen, MySQL-Datenbank und Projektstruktur standardisieren diese sechs Aspekte den Entwicklungsprozess und stellen sicher, dass wir effizienten und eleganten Code schreiben können.

Aber diese normativen Dinge können kaum die erwarteten Ergebnisse erzielen, indem sie sich nur auf das Bewusstsein der Menschen verlassen.

Um dieses Problem zu lösen, hat Alibaba das Plug-in Alibaba Java Coding Guidelines eingeführt, das nicht standardmäßigen Code direkt erkennen kann. 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

Das Plugin ist installiert Drücken Sie anschließend die Tastenkombination: Strg+Alt+Umschalt+J, um das gesamte Projekt oder eine einzelne Datei nach Codierungskonventionen zu durchsuchen.

Nach dem Scannen ist es Nicht standardmäßige Codes werden von hoch nach niedrig geordnet.

Im Folgenden werden derzeit drei Stufen angezeigt:

  • Blocker-Absturz
  • Kritisch
  • Schwerwiegend

Klicken Sie auf eine der nicht standardmäßigen Codezeilen Im linken und rechten Fenster wird sofort der nicht standardmäßige detaillierte Code angezeigt, sodass wir das Problem schnell lokalisieren können.

nett.

🎜5. GenerateAllSetter🎜🎜🎜Oft müssen wir einem Objekt einen Wert zuweisen, wir müssen viele Setter schreiben. code> oder <code>gettercode. 🎜🎜Gibt es eine Möglichkeit, dies mit einem Klick zu tun? 🎜🎜Antwort: Ja, verwenden Sie das Plug-in GenerateAllSetter. 🎜🎜🎜🎜Nach der Installation des Plugs -in, drücken Sie auf dem erstellten Objekt die Tastenkombination: alt + enter. 🎜🎜Wählen Sie im Popup-Fenster: Alle Setter mit Standardwert generieren. 🎜🎜🎜🎜 wird automatisch generiert Der folgende Code: 🎜🎜🎜🎜 Einfach so praktisch. 🎜

🎜6. SequenceDiagram🎜🎜🎜Wenn wir normalerweise den Quellcode lesen, müssen wir oft einige Sequenzdiagramme zeichnen, um die interne Logik zu klären . 🎜🎜Wenn wir direkt zeichnen, verschwendet das viel Zeit und das gezeichnete Bild ist möglicherweise nicht korrekt. 🎜🎜Sie können das Plug-in SequenceDiagram verwenden. 🎜🎜🎜🎜Wählen Sie ein bestimmtes aus Methode, rechtsklicken und auswählen: Sequenzdiagramm-Option: 🎜🎜🎜🎜Danach erscheint das Zeitdiagramm: 🎜🎜🎜🎜Ab jetzt kann ich Zeichenmeister werden, perfekt. 🎜

🎜7. CheckStyle-IDEA🎜🎜🎜In Bezug auf das Codeformat müssen wir auf viele Stellen achten, wie zum Beispiel: nutzlose Importe, keine Kommentare, Syntax Fehler, zu lange Methoden usw. 🎜🎜Gibt es eine Möglichkeit, die oben genannten Probleme sofort in der Idee zu erkennen? 🎜🎜Antwort: Verwenden Sie das Plug-in CheckStyle-IDEA. 🎜🎜CheckStyle-IDEA ist ein Tool zur Erkennung, ob das Codeformat den Spezifikationen entspricht. Die am häufigsten verwendeten sind die Google-Spezifikation und der Sun Spezifikation. 🎜🎜🎜🎜🎜Nach der Installation des Plug-Ins erscheint die CheckStyle-Option unter der Idee: 🎜🎜🎜🎜🎜Klicken Sie auf die grüne Schaltfläche links, um den Code zu scannen. In der Mitte wird der Grund für die Nichteinhaltung der Code-Vorgaben angezeigt. 🎜🎜Doppelklicken Sie auf den Code, um direkt zum jeweiligen Code zu springen: 🎜🎜🎜🎜

8.JRebel und

Und jeder Neustart kostet viel Zeit.

Gibt es eine Möglichkeit, die Java-Code-Änderung sofort wirksam werden zu lassen, ohne das System neu starten zu müssen?

Antwort: Verwenden Sie das Plug-in JRebel und XRebel.

Wie im Bild gezeigt:

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

Nachdem die Installation abgeschlossen ist, gibt es hier zwei grüne Schaltflächen und rechts eine zusätzliche Option „Rebel Agents auswählen“:

Eine der grünen Schaltflächen zeigt ein Startprojekt für die Hot-Bereitstellung an, und die andere zeigt ein Startprojekt für die Hot-Bereitstellung mit Debug-Standard an.

Die Option „Rebel Agents auswählen“ enthält drei Werte:

  • JRebel: Starten Sie den Dienst nach der Änderung des Codes nicht neu und erwarten Sie, dass der Code direkt wirksam wird.
  • XRebel: Überwachen Sie die Leistung jedes Teils des Codes während des Anforderungsprozesses. Zum Beispiel: Methodenausführungszeit, auftretende Ausnahmen, SQL-Ausführungszeit, Ausgabeprotokoll, MQ-Ausführungszeit usw.
  • JRebel+XRebel: Starten Sie den Dienst nach dem Ändern des Codes nicht neu und überwachen Sie den Code nicht.

9. Codota
🎜Um ehrlich zu sein, ist die vorhandene Code-Eingabeaufforderungsfunktion von idea bereits sehr leistungsfähig. 🎜🎜Aber wenn Sie das Codota-Plug-in verwendet haben, wird Ihre Code-Schreibgeschwindigkeit noch höher. 🎜🎜🎜🎜Nach der Installation des Plugs -in, es gibt Ihnen einige Tipps, wenn wir Code schreiben: 🎜🎜 🎜Diese Tipps basieren auf KI-Statistiken und sind als Referenz sehr wertvoll. 🎜

🎜10. GsonFormat🎜🎜🎜Oft muss ich die Parameter in json in Parameter in Entity Object konvertieren. Oder konvertieren Sie die Parameter in Entity Object in Parameter in json. 🎜🎜Früher haben wir manuell eine Variable und eine Kopie der Variablen erstellt. 🎜🎜Aber jetzt ist die gute Nachricht, dass das GsonFormat-Plug-in dieser Idee uns dabei helfen kann, dies zu erreichen. 🎜🎜🎜🎜Nach der Installation des Plugs -in, erstellen Sie zunächst eine leere Klasse: 🎜🎜🎜🎜Drücken Sie die Tastenkombination: alt + s. Das folgende Fenster wird angezeigt: 🎜🎜🎜🎜Geben Sie dann die JSON-Daten in dieses Fenster ein. 🎜🎜Klicken Sie auf die Schaltfläche „OK“ und diese Codes werden automatisch generiert: 🎜🎜 🎜Es ist so schön. 🎜

🎜11. Regenbogenklammern🎜🎜🎜Wenn wir normalerweise Code schreiben, bereiten uns Klammern große Kopfschmerzen, insbesondere wenn der Code viel Logik enthält und Schicht für Schicht verschachtelt ist . 🎜🎜Es ist auf den ersten Blick schwer zu erkennen, in welcher Klammer der Code beginnt und mit welcher Anti-Klammer er endet. 🎜🎜Gibt es eine Möglichkeit, dieses Problem zu lösen? 🎜🎜Antwort: Verwenden Sie das Plug-in Rainbow Brackets. 🎜🎜🎜Nach der Installation des Plug- in werden Klammern und Anti-Klammern im Code automatisch durch unterschiedliche Farben unterschieden: 🎜🎜sehr auffällig und intuitiv. 🎜

🎜12. CodeGlance🎜🎜🎜Manchmal lesen wir viel Code, beispielsweise eine Klasse, die viele Methoden und Mitgliedsvariablen enthält. 🎜🎜Es wird viel Zeit verschwenden, Stück für Stück von oben nach unten zu folgen. Gibt es also eine Möglichkeit, den Code, den Sie sehen möchten, schnell zu finden? 🎜🎜Antwort: Ja, Sie können das Plug-in CodeGlance verwenden. 🎜🎜🎜🎜🎜Nach der Installation des Plug-Ins erscheint auf der rechten Seite des Codes das folgende Fenster: 🎜🎜🎜🎜🎜Es handelt sich um eine Miniaturansicht des Codes, durch die wir Codeblöcke sehr schnell wechseln können. 🎜

Das Letzte, was ich sagen muss (bitte achten Sie darauf, prostituieren Sie mich nicht umsonst)

Wenn dieser Artikel für Sie hilfreich oder inspirierend ist, scannen Sie bitte den QR-Code und senden Sie ihn, um ihm zu folgen. Ihre Unterstützung bedeutet, dass ich es kann Weiter schreiben. Die größte Motivation.
Bitte klicken Sie auf drei Links: „Gefällt mir“, „Retweet“ und „Ansehen“.
Folgen Sie dem öffentlichen Konto: [Su San spricht über Technologie], antworten Sie im öffentlichen Konto: Interviews, Code-Artefakte, Entwicklungshandbücher und Zeitmanagement haben große Vorteile für Fans. Antworten Sie auch: Treten Sie der Gruppe bei, Sie können mit vielen Senioren kommunizieren große BVT-Unternehmen studieren.

(Teilen von Lernvideos: Grundlegendes Programmiervideo)

Das obige ist der detaillierte Inhalt von12 Ideen-Plug-ins zur Verbesserung Ihrer Codierungseffizienz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage