IntelliJ でハッキング

Jetbrains はオープンソースプロジェクト向けのプログラムを提供しており、IntelliJ IDEA ライセンスを受け取ることができます。

Jetbrains は、オープンソースプロジェクト向けのプログラムを提供しており、IntelliJ IDEA ライセンスを受け取ることができます。 Selenium プロジェクトが長年参加しているこのプログラムの一環として、Jetbrains は IntelliJ の公平でバランスの取れたレビューを提供するよう依頼しました。 私はそれを試み、私の偏見を事前に述べて、あなたがそれらを認識できるようにします。

私は、Selenium コードに取り組み始めてから 10 年強の間、Jetbrain の IntelliJ を使用してハッキングしてきました。 これは今でも私の Java 作業に最適な IDE であり、使うのがとても楽しいです。 しばらくの間、私は(無料の)Community Edition を使用してきましたが、これは多くのコーディングニーズに十分対応できます。

私の仕事のほとんどは Java であり、そこが IDEA を最もよく知っている場所です。 私は Ruby と Python を少しだけかじり、かなりの量の Javascript を IDEA で書いてきました。

長所

他の優れた IDE と同様に、IDEA は多くの異なる言語とシームレスに連携する機能を備えています。 ポリグロットプログラマーの場合、作業の多くを同じツールで実行できると、生活が非常に楽になります。 Selenium プロジェクトでは、Java、C#、Ruby、Python、および Javascript を広範囲に使用しています。 私は C# は一切行わず、主に Java に焦点を当てていますが、JS、Ruby、Python のサポートは素晴らしく、うまく機能しているようです。 組み込みの型検出およびコードナビゲーション機能は印象的です(特に JS などの型指定のない言語の場合)。

もちろん、IDEA を最初に素晴らしいものにした機能は、それが提供するリファクタリングオプションの範囲です。 これらは素晴らしく、常にそうでした。 Java 8 の未来(ついに!)に移行するにつれて私が気づいた素晴らしい機能の 1 つは、それらが理にかなっている場合(そして、正直に言うと、そうでない場合もあります)、新しい機能に移行するのに役立つ提案を提供することです。 ラムダを非常に簡単に使用できるようになりました。

しばらくの間、IDEA は遅くなり、肥大化していましたが、Facebook の開発者のおかげもあり、最新リリースはきびきびとしており、より大きなプロジェクトをより効率的に処理できるようになったことを嬉しく思います。 私が感謝していることの 1 つは、Jetbrains がコア製品へのパッチを受け入れることにどれほどオープンであったかということです。それは、私が重要だと感じる外部貢献者への敬意のレベルを示しています(もちろん、私はそう思うでしょう。私は OSS を楽しんで働いています!)。

IDEA には、優れた幅広いプラグインが利用可能です。 私は Buck プラグインをフックアップして利用しました。 拡張機能 API がなければ、このプラグインは不可能だったでしょうが、それらがあることは非常に役立ち、IDE をさらに有能にします。

IDE のプラスポイントの最後に、IDE が Java の新しいバージョンを比較的厳密に追跡していることが大好きです。将来使用できるようになる新しい言語機能を見るのは楽しいです!

短所

優れた製品ですが、いくつかの不満があります。

最も困るのは、組み込みのコード分析が、一部の Java クラスがコンパイルされないことを常に警告するわけではないことです。 最近の例は、使用するメソッドの選択があいまいであるため、一部のラムダを使用できないことを IDEA がフラグを立てなかったことです。 これは、Java 言語がそののろまな方法で前進し続けており、コンパイラーがリリースごとに改善されているためである可能性があります。確かに、これらの同じファイルは古い Java リリースでは問題なくコンパイルされました。

エラーが発生した場合、IDEA が可能な限り続行できるようにする魔法の設定をまだ見つけていません。 Eclipse について気に入っている機能の 1 つは、無効なソースファイルがあっても、可能な限りコンパイルすることです。 TDD を行う場合、ユニットテストが誤ったコードに触れない限り実行して合格できるため、これにより少しだけ速く移動できます。 まったく同じ機能が IDEA に存在することを心から願っています!

Selenium プロジェクトでは、ビルドに Buck を使用しています。 Buck プラグインでは、(まだ!)IDE 内でテストをビルドおよび実行することはできませんが、Buck は IDE では繰り返すことができない、ビルドを成功させるために必要な手順をいくつか実行します。 IDEA は、ビルドの実行前に Ant ステップを実行する機能を提供しており、これが「任意のシェルコマンド」に一般化されていれば非常に役立ちます。 ほとんどの場合、問題ありませんが、実行することを忘れるのは面倒です!

全体として、私は IntelliJ が大好きです。 高速で有能な IDE であり、その背後にある会社は OSS をサポートしています。 何を愛さない理由がありますか?

最終更新日:2021年8月7日: ディレクトリ名の変更 (e9895f27c26)