見出し画像

現場で戦うプログラマのためのIntelliJ IDEA

私はエンジニアとして働き始めてから、プログラミングにIntelliJを利用しています。この記事ではIntelliJの何が便利なのか説明します。

注意)下記では、有料のIntelliJ IDEA Ultimateについて記載しています。無料のCommunity版もありますが、一部機能が制限されています。

関連: Macで色々試した結果使っているメモアプリ、タスク管理アプリ

複数プログラミング言語対応

Javaを筆頭として、仕事で使うような大抵のプログラミング言語はカバーされています。私はコードを読むときは、GitHubなどブラウザでは読まずに、git cloneしてIntelliJで開きます。コードレビューの際にIntelliJで開くだけで静的解析でミスに気がつくことも多いです。

自分の環境だと、Java、Go、TypeScript、Python、PHP、Perl、PHP、Rubyあたりのコードリポジトリが乱立していたりするので、複数言語に対応している必要があります。全部の言語に詳しいわけでもないので、静的解析の精度や、快適にコードジャンプできることが大事だと思ってます。

補足) C/C++はCLionというIDEが必要になります。そのため、自分は全てのIDEに対応したAll Products Packを購入しています。

コードジャンプ

仕様や実装がドキュメント化されていないことは多く、結局のところ実際にコードを追うことでしか理解できないことも多いです。コードをどれだけ追いやすいかは生産性に直結します。IntelliJはこの速度が速いです。

画像1

強力なリファクタリング機能

リファクタリング機能も強力です。関数の名前の変更する、ロジックを関数に切り出す、インライン化する、こういった作業を簡単かつ安全に行えるとリファクタリングが気軽で楽しいものになります。また、本質的なコーディング作業に時間や集中力を残すことができます。

スクリーンショット 2021-03-19 20.04.51

Git操作、GitHub連携

Gitのログをツリー表示で見たり、GitHubと連携してPull RequestもIntelliJから見ることができます。自分の場合、業務の結構な割合がコードレビューなので、コードリーディングの快適さは重要です。コードによほど詳しくない限り、普通は差分だけ見ても理解できないので、前後の文脈や依存関係のあるファイルなども読む必要がありますが、IntelliJだとこれが手早く済みます。書き心地よりは読み心地を重視しています。

画像2

TaskとContext

IntelliJに特有だと思うのがTaskとContextです。ある機能を作っている途中に、緊急で修正しなければならないということはよくありますが、ごちゃ混ぜに作業すると訳がわからなくなってしまいます。タスクを利用すると、中断したタスクとは別にタスクを作って整理が可能です。

タスクは「コンテキスト」というタブやGitの編集リストなどの状態を保持してくれます。そのため、作業を切り替えるごとにファイルを閉じたり開き直す必要がありません。緊急で割り込まれる作業が多い人にオススメです。

タスクはGithub IssueやJIRAのチケットなどの課題トラッカーから作成することもできます。(若干この同期が遅い気がしていますが・・・)

値段の問題

一番大きな欠点はコストです。個人で利用する場合、全部込みのJetbrains All Products Pack (サムライズ)だと2021年現在、年間28500円、継続利用で17000円になります。私は必要経費と考えてますが、少々オススメしにくい価格帯ではあります。

他のエディタの比較

私は働き始めるまではずっとVimユーザーで、今でもサーバー上ではVimで設定の編集などは行なっていますが、開発する際はほとんどIntelliJを利用しています。

エディタはカスタマイズしていけばどこまでも自分に合わせていけるので、本気でカスタマイズしていく場合はEmacsでもVimでも便利なのだと思います。Language Serverが登場し、たしかにVimでもかなり快適にプログラミングできるようになりました。

ただ、自分の場合はVimの設定をメンテナンスしている時間が結構長く、しかも終わりが見えませんでした。時間もコストだと考えると、現在の価格くらいなら元が取れてると考えています。(安いに越したことはないですが・・・)

VSCodeはデフォルトでも結構使いやすいのですが、上記のジャンプの速度やリファクタリング機能などでIntelliJに分があると思ってます。

最後まで読んでいただきありがとうございます。 他の記事はこちらからどうぞ → https://note.com/sat0b3ee/