内容の一部はCode Farmer Code Roadから転載しています。
記事ディレクトリ
基本的にすべてのプログラマーがコードを書くことができますが、速度は異なります。
1 日に数百行しかコードを書けない人がいるのはなぜですか?
そして、1 日に数千行のコードを書ける人もいるでしょうか?
開発効率を向上させ、同時により多くのコードを作成する方法はありますか?
今日はアイデアのコーディング効率を向上させる 12 個のプラグインについてお話します。お役に立てれば幸いです。
ロンボク島
lombok については以前、プロジェクトで使用すべきかどうかという議論がまだありました。そのため、「迷った、lombok を使用すべきか?」という特集記事も書きました。」。
現在、idea の新しいバージョンには lombok プラグインが組み込まれているため、それを使用することがトレンドになっています。
記事全体の最初の紹介に lombok を入れた理由は、特にエンティティ、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 クラスには、メンバー変数、ゲッター/セッター メソッド、構築メソッド、equals、hashCode メソッドが含まれます。
一見したところ、コードはまだかなり多くあります。また、別の質問があります。User クラスのコードが変更された場合、たとえば、age フィールドが文字列型に変更された場合、または name フィールド名が変更された場合、関連するメンバー変数、getter/setter を変更する必要がありますか?メソッド、構築メソッド、すべてのequalsメソッドとhashCodeメソッドを変更しますか?
良いニュースは、lombok がこの問題を解決できるということです。
idea2020.3 より前のバージョンの場合は、idea に次のプラグインをインストールする必要があります。
ただし、idea2020.3 以降、idea には lombok 関数が組み込まれています。
lombok プラグインを使用すると、上記の機能を実現するには次のようなコードを記述するだけで済みます。
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class User {
private Long id;
private String name;
private Integer age;
private String address;
}
とても簡単なので、書くコードはかなり少なくて済みます。
さらに、プロジェクトの pom ファイルに lombok 依存関係パッケージを導入する必要もあります。そうしないと、プロジェクトは実行されません。
無料のMybatisプラグイン
中国では、mybatis が最も主流のデータベース フレームワークとなっており、このフレームワークは半自動 ORM 永続化フレームワークに属し、hibernate などの完全自動化された永続化フレームワークよりも柔軟性とパフォーマンスが優れています。
mybatis では、バインドを完了するためにマッパーと対応する XML ファイルを定義する必要があります。
ここでは例として user テーブルを取り上げます。まず、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 != ''">
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 != ''">
#{name},
</if>
<if test="age != null ">
#{age},
</if>
<if test="sex != null ">
#{sex},
</if>
</trim>
</insert>
</mapper>
UserMapper.xml ファイルでは、マッパー タグの名前空間は UserMapper インターフェイス名に対応し、挿入タグの id=insertUser は UserMapper インターフェイスの insertUser メソッドに対応します。
では、プロジェクト内の UserMapper クラスの getUser メソッドを通じて、UserMapper.xml ファイルの getUser メソッドにすばやくアクセスするにはどうすればよいでしょうか?
回答: これには、無料の Mybatis プラグインを使用する必要があります。
プラグインをインストールすると、UserMapper インターフェースのインターフェース名とメソッド名の左側に緑色の矢印が 2 つ表示され、矢印をクリックすると UserMapper.xml ファイルに対応するマッパータグまたは insertUser ステートメントにジャンプします。
また、UserMapper.xml ファイルの insertUser ステートメントの左側にも緑色の矢印が表示されており、この矢印をクリックすると、UserMapper インターフェイスの insertUser メソッドにジャンプすることもできます。
このプラグインを使用すると、マッパーと XML を自由に切り替えて自由に遊ぶことができ、以前のように検索して検索する必要がなくなりました。
翻訳
私を含め、英語があまり得意ではない友人もいるかもしれません (私は CET-4 に合格したばかりです)。
変数やメソッドに名前を付けるときは、長い時間考えなければなりません。特にJDKの英語ドキュメントを読んでいると、珍しい単語が出てきて頭を悩ませました。
良いニュースは、文書内を自由に移動できる翻訳プラグインを使用することです。
翻訳プラグインをインストールすると、他の設定またはツールに追加の翻訳メニューが表示されます。
このメニューをクリックします。 右側のウィンドウで、翻訳ソフトウェアを選択できます。
翻訳する英語文書を選択してください:
右クリックのポップアップ ウィンドウで [翻訳] オプションを選択すると、次のウィンドウが表示されます。
英語の段落が一度に中国語に翻訳されます。これは非常に便利です。
Alibaba Java コーディング ガイドライン
Java 開発に携わる小規模パートナーであれば、Alibaba の「Java 開発マニュアル」を読んだことがあるはずです。
このマニュアルには、日常の開発プロセスで遭遇する可能性のある問題がまとめられています。プログラミング規制、例外ログ、単体テスト、セキュリティ規制、Mysql データベース、エンジニアリング構造に至るこれら 6 つの側面により、開発プロセスが標準化され、効率的で洗練されたコードを作成できるようになります。
しかし、これらの規範的なものは人間の意識だけでは期待される効果を得ることが困難です。
この問題を解決するために、Alibaba は、このプラグインを通じて非標準コードを直接検出できる Alibaba Java コーディング ガイドライン プラグインをリリースしました。
プラグインをインストールした後、ショートカット キー Ctrl+Alt+Shift+J を押して、プロジェクト全体または 1 つのファイルをスキャンしてエンコード規制を調べます。
スキャン後、不規則なコードは高いものから低いものへと分類されます。
現在、以下に示す 3 つのレベルがあります。
- ブロッカーのクラッシュ
- 致命的
- 重要な
左側の非標準コード行の 1 つをクリックすると、右側のウィンドウに非標準の詳細コードがすぐに表示されるため、問題をすぐに特定するのに便利です。
良い。
GenerateAllSetter
オブジェクトに値を代入する必要がある場合が多く、パラメーターが多い場合は、大量のセッター コードまたはゲッター コードを手動で記述する必要があります。
ワンクリックでそれを行う方法はありますか?
回答: はい、GenerateAllSetter プラグインを使用します。
プラグインをインストールした後、作成したオブジェクトでショートカット キー (alt + Enter) を押します。
ポップアップ ウィンドウで、[デフォルト値を使用してすべてのセッターを生成] を選択します。
次のコードが自動的に生成されます。
とても便利です。
シーケンス図
私たちが通常ソースコードを読むとき、内部ロジックを整理するためにシーケンス図を描く必要があることがよくあります。
直接描くと時間がかかりますし、描いた絵も正確ではない可能性があります。
現時点では、SequenceDiagram プラグインを使用できます。
特定のメソッドを選択し、右クリックして次を選択します: シーケンス図オプション:
その後、シーケンス図が表示されます。
これで、私は完璧に絵を描く達人になれるでしょう。
CheckStyle-IDEA
コード形式に関しては、無駄なインポート、書かれていないコメント、文法上の誤り、長すぎるメソッドなど、注意が必要な箇所がたくさんあります。
アイデアの中で上記の問題を一度に検出する方法はありますか?
回答: CheckStyle-IDEA プラグインを使用します。
CheckStyle-IDEAは、コード形式が仕様を満たしているかを検出するツールであり、その中でもGoogle仕様とSun仕様が多く使用されています。
プラグインをインストールすると、アイデアの下に「CheckStyle」オプションが表示されます。
左側の緑色のボタンをクリックしてコードをスキャンします。中央の位置には、コード仕様に準拠していない理由が表示されます。
コードをダブルクリックすると、特定のコードに直接ジャンプします。
JRebel と XRebel
idea で Java プロジェクトを開発する場合、非常に不快な点があります。クラスやインターフェイスを変更するたびに、サービスを再起動する必要があります。そうしないと、最新の場所が実行されません。
そして、再起動するたびに時間がかかります。
Java コードを変更した後、システムを再起動せずにすぐに変更を有効にする方法はありますか?
A: JRebel プラグインと XRebel プラグインを使用します。
図に示すように:
インストールが完了すると、緑色のボタンが 2 つ表示され、右側に [Rebel Agents を選択] というオプションがあります。
緑色のボタンの 1 つは、ホット デプロイによってプロジェクトが開始されることを意味し、もう 1 つは、デフォルトのホット デプロイによってプロジェクトがデバッグ付きで開始されることを意味します。
[反乱軍エージェントの選択] オプションには 3 つの値があります。
- JRebel: コードを変更した後はサービスを再起動せず、コードが直接有効になることを期待してください。
- XRebel: リクエストプロセス中に、コードの各部分のパフォーマンスを監視します。例: メソッド実行時間、例外、SQL 実行時間、出力ログ、MQ 実行時間など。
- JRebel+XRebel: コードを変更した後は、サービスを再起動せずにコードを監視します。
コドータ
正直に言うと、アイデアの既存のコードヒント機能はすでに非常に強力です。
ただし、Codota プラグインを使用したことがある場合は、コードの記述速度がより高いレベルに向上します。
プラグインをインストールした後、コードを記述するときに、いくつかのヒントが表示されます。
これらのヒントはAI統計に基づいており、非常に参考になります。
Gsonフォーマット
多くの場合、json のパラメーターをエンティティ オブジェクトのパラメーターに変換する必要があります。または、エンティティ オブジェクトのパラメーターを JSON のパラメーターに変換します。
以前は、1 つの変数と 1 つの変数を手動でコピーしていました。
しかし、今回の良いニュースは、アイデアの GsonFormat プラグインがこれを支援できるということです。
プラグインをインストールした後、まず空のクラスを作成します。
ショートカット キー alt + s を押すと、次のウィンドウが表示されます。
次に、このウィンドウに json データを入力します。
[OK] ボタンをクリックすると、次のコードが自動的に生成されます。
ただただ素晴らしい。
レインボーブラケット
私たちが通常コードを書くとき、特にコードに多くのロジックがあり、レイヤーごとにネストされている場合、括弧は非常に頭の痛い問題です。
一見しただけでは、コードがどの括弧で始まり、どの逆括弧で終わるのかを確認するのは困難です。
これを回避する方法はありますか?
A: Rainbow Brackets プラグインを使用してください。
プラグインをインストールすると、コード内の異なる色に応じてブラケットとバックブラケットが自動的に区別されます。
非常に目立ち、非常に直感的です。
コードグランス
場合によっては、クラスに多くのメソッドやメンバー変数が含まれている場合など、大量のコードを読むことがあります。
上から下に少しずつ変えていくと、かなりの時間を無駄にしてしまいます。では、見たいコードに素早くアクセスする方法はあるのでしょうか?
A: はい、CodeGlance プラグインを使用できます。
プラグインをインストールすると、コードの右側に次のウィンドウが表示されます。
これはコードのサムネイルであり、これを通じてコード ブロックを非常に素早く切り替えることができます。
Maven ヘルパー
インストール後、pom ファイルに追加の [Dependcy Analyzer] タブが表示されます。
- 競合: 競合する依存関係を表示します。
- すべての依存関係をリストとして: 依存関係をリストに表示します。
- すべての依存関係をツリーとして表示: 依存関係をツリー形式で表示します。
競合する依存関係が見つかった場合は、右クリックしてソース ファイルにジャンプするか、[除外] を直接選択してこの依存関係を除外することができます。
リートコードエディター
IDEA でアルゴリズムの質問をブラッシングし
た後、インストール番号の後に、それを設定するためのツールに Leetcode プラグイン メニューが表示されます。質問を作成するときは、アイデア インターフェイスの左側のサイドバーで次のようにします。