"ツールピープルに敬礼。この記事は、Spring技術スタック、MyBatis、JVM、ミドルウェアなど、無料で学べる小綺麗な"BATのユートピア"コラム「ユートピア中に、含まれています。公開番号"BAT's Utopia"をたどって、ひとつひとつ、深くマスターしていきましょう。
"
序文
4ヶ月近く経った2020-07-28(東京時間)の深夜、IntelliJ IDEAが2020年代2回目のマイルストーンリリースとなるアップデートを行いました。
2020年はジェットブレインの20周年ということで、何か正式なフラグを立てるのではと、2020-01-20に「2020年ロードマップ」が正式に発表されて以来、個人的には注目しています。一方では創立20周年であり、他方では21世紀の "新しい10年 "ですから、何かをする良い機会です。
前回のリリースでは、効率性を大幅に向上させる便利な新機能などが多数追加され、圧倒的な好評を博しました。2020年のマイルストーン・リリース第2弾に期待することは?
テキスト
いつものように、最新のIDEAのローンチイメージをご覧ください。比較のために「2020.1」のローンチイメージも載せておきますが、どちらが良く見えますか?
what s new
IntelliJ IDEA 2020.2 では、IDE での GitHub PR のレビューやマージなど、"GitHub リクエストの完全なコントロール"に重点を置いた改善が行われました。また、Java 15、Jakarta EE 9をサポートし、Quarkus、microautなども含まれています。
Java 15
Java 15が9月にリリースされるにも関わらず、IntelliJ IDEA 2020.2は既に先行して対応しており、融通の利かない対応はできません、大拍手。
"注:Java 15の新機能は、この記事では言及していないもの、結局のところ、これはこの記事の焦点ではありません!
"
余談ですが、JDK9以降、オラクルは新しいリリース・サイクル、つまり半年に1リリース、3年に1LTSリリースを採用しています。 JDK15はJDK9以降7番目のリリースで、まだ非LTSリリースであり、最新のLTSリリースはJDK11です。
2、関連事項のヒント
これは、特にRENAME機能を使わない人にとっては素晴らしい機能です。
外部で使用する」クラス、メソッド、フィールドのシグネチャを変更してコンパイルエラーが発生した場合、IDE は「埋め込みヒント」で通知します。関連するエンベッディングヒントをクリックすると、IDE は自動的に検索ツールウィンドウを開き、外部ファイルで発生するすべての関連する問題を一覧表示します。
この段落を読んだ後、まだ少し盲目ではない、さあ、兄はあなたのために例を用意しました:
Person.java ファイル:
public class Person {
public String eat(String food) {
return "SUCCESS";
}
}
Demo.javaファイル:
public class Demo {
public static void main(String[] args) {
new Person().eat(" ");
new Person().eat(" ");
}
}
この時点では、すべてがうまくコンパイルされているはずです。今、私は変更を加える:EatDish()という名前のPersonクラスのeat()メソッドを変更すると、結果は次のとおりです:マウスをクリックすると、自動的に検索ボックスを開き、問題を見つけるのに役立つプロンプトが表示されます:ちょうどあなたに尋ねる、この機能は、実用的かどうか、クールではありませんか?
"ヒント:同じ.javaファイルでは、ああ、先端に似ていません!
"
3.運転中の異常原因分析
この機能の名前を聞いた瞬間、すごいと思いました。プログラマーにとって、問題を素早く見つけることは常に悩みの種でした。
IDEA の新バージョンでは、例外スタックトレース解析にデータフロー解析が追加されました。スタックトレースをクリックすると、IDE は例外が発生したコード内の正確な場所に移動し、エラーが発生した理由を理解するための「提案を提供」することがあります。
以下はNPE例外の例です:
public static void main(String[] args) {
Integer i = null;
System.out.println(i.toString());
}
プログラムを実行し、例外をスローすると、コンソールに次のように表示されます。赤枠で示したように、IDEAはブレークポイントを作成するよう提案し、この「ボタン」をクリックすると、ブレークポイント作成ダイアログボックスがポップアップします。
「添付:比較のための旧バージョンのエフェクトのスクリーンショット:
4、ストリームAPI自動補完の改善
Stream API」は開発現場であまりにも一般的に使われているため、ほんの少し賢くなるだけでも、その効率化は非常に大きなものになります。
コレクションまたは配列にストリーム API メソッド名を直接入力すると、IDEA が自動的に stream() を挿入します。これは、あらゆるストリーム操作に適用されます。
"音声:手動でstream()をもう一段階書く必要はありません!
"
早速ですが、栗です:
"添付ファイル:比較のための旧バージョンのエフェクトのスクリーンショット:全くサポートされていないことは明らかです。
5、Live Templatesの新しいJavaグループ化
私は、これは小さなパートナーの多くは、結局のところ、我々はJavaプログラマであり、ライブテンプレートの使用は、ほぼ100%がJavaコードのためであり、その後、驚くほど"いいえ"Javaのグループ化の古いバージョンを、痛点をされていると信じて、それは私が最初にこのポイントのサイレントゲロにIDEAを使用し始めたときに覚えて本当に難しいです。
さて、今回のバージョンでようやくそれを補うことができました:
"ヒント:カスタムグループに入れたものはそのまま残ります!
"
"添付ファイル":比較のためのスクリーンショットの効果の古いバージョン:JavaScriptのグループ化は驚くほどJavaのグループ化を持っていない、特別な強調を確信:このウィンドウは新しいですが、古いバージョンは、この能力を持っていない、とそのようなウィンドウはありません。だから、アップ?...
6.新しい問題ウィンドウ
このバージョンでは、新しい問題ウィンドウが追加されました。
問題の説明とともに、「現在のファイルに関連する」警告とエラーを表示します。このツール・ウィンドウでは、問題を右クリックして、問題が発生したコード行にナビゲートすることができますので、問題を一つずつ修正することができます。また、ファイルの「右上隅」に問題の総数と上下のナビゲーションボタンがあり、非常に配慮されています:
7、操作意図のプレビュー
この機能により、実際にコードに適用された「後」に、その結果をプレビューすることができます。Alt+EnterキーでShow Contextアクションを呼び出し、必要なアクションを選択し、対応するショートカットキーを押すと結果のプレビューが表示されます。
例えば、以下のコード:
public static void main(String[] args) {
List<Integer> ids = new ArrayList<>();
for (Integer id : ids) {
if (id > 10) {
System.out.println(id);
}
}
}
でAlt+Enterを押します。次にCtrl+Shift+Iを押すと、結果のプレビューが表示されます:
8.スペルチェックの改善
IDEAはスペルチェッカーを使って、スペルミスがないかをチェックします。この機能は主にパフォーマンスと精度を向上させますが、私は通常これを無効にしています。
9, GitHubプルリクエストの完全サポート
GitHub PR のワークフロー全体を IntelliJ IDEAで「直接」 実行できるようになりました。これには、PR の閲覧、割り当て、管理、マージ、タイムラインとインラインコメントの表示、コメントの送信、レビュー、変更の承認が含まれます。
シンプルにするために、実際の例を使う必要はありません。
例として公式の3つの写真を引用します:この機能エリアは間違いなくJavaオープンソースコミュニティの開発作業者にとって「恩恵」であると言いたいです!
10、Git操作ダイアログボックスの改善
これは主に、マージ、プル、リベースのダイアログの見た目の一貫性によるものです。ダイアログは、"保留中" のGit コマンドを明確に識別できるように改善されました。また、Pull ダイアログと Merge ダイアログにそれぞれ--rebase や --no-verify などの不足していたオプションが追加されました。
「添付:比較のための旧バージョンのエフェクトのスクリーンショット:
Jakarta EE 9
Jakarta EE 9 with Java 15も今年9月にリリースされる予定ですが、IDEAは早くからサポートを提供してきました。そして、Jakarta EEの利用可能な機能をすべてサポートしたとされています。
オフトピ:2018年3月上旬、Java EEは正式にJakartaEEと改名され、「JavaEEはなくなる」ことになりました。
12、エンタープライズプロジェクトウィザードの作成
Java EE 8またはJakarta EE 9プロジェクトを作成する必要がある場合は、IDEAの作成ウィザードを使用できます。
中国のプログラマはみんなSpringを使っているので、プロジェクトの作成にSpring Initializrを使うことがほとんどなので、これはあまり意味がないようです。
12.HPROFメモリービューア
IntelliJ IDEAのバージョン2020.1では、.hprofメモリダンプファイルを開くことができるようになり、メモリリークを特定し、メモリ使用を最適化する方法を見つけるのに役立ちます。この時点では、この機能はまだ非常にシンプルで、IDEAの公式コミットメントは改善され続けており、このバージョンが機能強化をもたらすことは事実です。
以下は、このケースを通して使用する手です。コードは以下の通りです:
public static void main(String[] args) throws InterruptedException {
List<Integer> ids = new ArrayList<>();
TimeUnit.MINUTES.sleep(10);
}
public class Person {
public String eat(String food) {
return "SUCCESS";
}
}
まず、jpsでプロセスIDを検索し、test.hprofというダンプファイルを取得します。 次に、IDEAのこの関数を使ってファイルを読み込みます:
HPROF Memory Viewer は、計算されたオブジェクトの保持サイズ、ごみコレクターのルートへの最短パス、オブジェクトのドミナントツリー、および着信参照を表示します。
"Attachment: Screenshots of the previous version for comparison: 新バージョンはまだ明らかな"機能拡張"という感じです。旧バージョンは本番解析には公式には推奨されていませんでしたが、明らかにこのバージョンにはもうそのような言葉はありませんので、使ってみてください。
12.構築済みインデックスの使用
IDEAは、プロジェクトを開くたびに、あなたが流暢なコーディングのプロセスのときに従うことを確認するためにインデックスを構築するためにインデックスを作成します、そして、このインデックスの段階は、一般的に多くの時間がかかります。
同じプロジェクトは、一般的に複数のN人、開発によって使用されるので、ちょうど"一度"インデックスを構築する必要がないことができ、他の人が直接それに使用する?
インデックスをローカルで作成する代わりに、"別のマシン"でインデックスを作成し、インデックスファイルを持ち込んで使用することで、インデックス作成を高速化することができます。
"ヒント:この機能には、追加サポートのためにShared IndexPlugin インストールが必要です。
"
13.索引付けもコード化可能
プロジェクトを開くとき、インデックスがビルド中であれば、コードはこのように色分けされます。
インデックスが作成され、色が正常に戻れば、通常のコーディングができます:
そして、IntelliJ IDEAバージョン2020.2では、プロジェクトのインデックスを作成するときにコードを「続ける」ことができるようになりました。IDEは、インデックス作成中にJavaのコード補完候補を提供できるようになりました。
Maven Wrapper
IntelliJ IDEA 2020.2 では Maven ラッパーがサポートされるようになりました。Maven ラッパーが提供され設定されている場合、IDE は自動的にそれを使用し、必要に応じて変更をインポートします。
Maven Wrapperとは?まあ、自分で調べてみてください。
15.
その他、JavaScript言語のコード自動補完サポート、データベースリンクのデータベースUI/機能の最適化、Scala言語のサポートなどです。
もちろん、IDEAの新バージョンはクラウドネイティブ技術であるDockerとKubernetesの最適化されたサポートがないわけではありません。これは主に設定ファイルのサポートに反映されています。