IntelliJ IDEAでインテリジェントなアイディアを

こんにちは。アスクルの こたにん (@Kotanin0) と申します。

LOHACO のフロントエンド開発・エンジニア採用・社内環境整備などを担当しております。

今回は、弊社エンジニアが利用している統合開発環境 IntelliJ IDEA のご紹介とともに

先日 6/29(金) に、株式会社サムライズム 代表の 山本ユースケ様(@yusuke)を講師にお招きし開催した

IntelliJ IDEA ハンズオンセミナーのレポートをお送りいたします。

IntelliJ IDEA とは

https://www.jetbrains.com/idea/

チェコに本社を置く JetBrains が開発しているJava IDE(統合開発環境)です。

Every aspect of IntelliJ IDEA is specifically designed to maximize developer productivity.

「開発者の生産性を最大にすることを第一に設計されている」と銘打っている、名前の通りとてもインテリなエディタです。

主にJava・Scala・Kotlin・JS(それに関わるライブラリ)に対応しています。

プラグインを入れることで、他のほとんどの言語・ライブラリに対応させることができます。

(PhpStormやGoLandなど、JetBrains の他製品もありますが、今回は割愛します)

社内での導入実績

1年前までは、弊社エンジニアの中での IntelliJ IDEA ユーザはたったの3名でした。

それが今現在では、、、

18名!!!

成長率600%です。来年の今頃には108名です。そうなるとエンジニアが不足します。

もとい。

IntelliJ IDEAを使う目的は様々。

Eclipseから乗り換えたり、SublimeTextやAtomから乗り換えたり、grepツール代わりにしたり。。。

IntelliJ IDEAで書くコードも様々。

Javaを書いたり、JSを書いたり、Kotlinを書いたり。。。

利用方法は個人個人ですが、この1年でエンジニアの標準環境へ昇華しました。

それぞれのメンバーが長年使い続けてきたIDE・エディタからあっさり乗り換えちゃうほど、

  • 高機能
  • 高速
  • 高品質

三高。

全てのエンジニアの心を奪う、全ての条件を兼ね備えたインテリIDEなのです。

IntelliJ IDEA を持ち腐れていないか?

三高揃った素敵なエディタですが、果たして自分は使いこなせているかしら?

見て見ぬふりをしているメニューや知らない機能がまだあるのではないかしら?

そんな不安から、IntelliJ IDEA のハンズオンセミナーを探し回っていたところ、、、

IntelliJ IDEA 購入時に販売代理店としてお世話になっている、株式会社サムライズム 様 のオープンのハンズオンセミナーを見つけました。

セミナーの申し込みをしたところ、「お伺いしてハンズオンしますよ!」と嬉しいお声かけをいただきまして、社内ハンズオンセミナーを開催することになりました。

ハンズオンセミナーで体験した IntelliJ IDEA のインテリなところ

ハッシュタグ #askuljb

というわけでここからは、 株式会社サムライズム 様をお招きして開催いただいたハンズオンセミナーの内容をもとに

IntelliJ IDEA をもっと賢く効率よく使いこなすためのテクニックをご紹介いたします。

  • 爆速なソース移動
  • 強力なコード補完
  • 柔軟なデバッグ機能

これから紹介するテクニックは全て、ハンズオンでみんな同期して手を動かしながら全身で学べます。

ちなみにハンズオンのようすはこんな感じ。2時間みっちり楽しい空間でした。

ハンズオン時の会場のようす

爆速なソース移動

コードを書くときは、複数のファイルを渡り歩いて参照・編集する場面がほとんどかと思います。

例えば、「新しいJavaクラスをひとつ作りたい!」シーン。

マウス操作だとおそらくこんな感じになるでしょう。

マウスだと手元が不安定でフラストレーションの温床

プロジェクトツリー行って、メニュー開いて新規ファイルでJava探して、おっとっと。。。

作業する手がキーボードとマウスを行き来てモタモタ。。。

ここで IntelliJ IDEA のショートカットを使いこなす!ショートカットを駆使するとこんな感じ。

ショートカットを覚えるだけでマウスなしでこんなに楽に

今の操作で利用したショートカットはこの子たち。(Mac Windows の順に記載)

プロジェクトツリーにフォーカスを当てる Cmd + 1 Alt + 1
新規ファイルを作る Cmd + N Alt + Insert
最近見たファイル Cmd + E Ctrl + E

マウスに触れることなく、キーボードのみで簡単に作業ができちゃいます。

続いて、「jQueryをバージョンアップしたいからjQueryをインポートしている全てのHTMLを探したい!」シーン。

プロジェクト全体をgrepするかと思いますが、プロジェクトが大きくなればなるほど時間のかかる操作だと思います。

ですが、IntelliJ IDEA のgrep機能 Shift + Cmd + F Shift + Ctrl + F は非常に強力です。

grepがリアルタイムで超速い

この速さ!ファイル探索系の操作が非常に高速で強力です。

APIフィールド名探したり、類似する名前のメソッドがないか探したりなど、様々な用途で活躍する機能です。

(jQuery、バージョンアップしなきゃ。。。)

他にもデフォルトで多くのショートカットが用意されております。

公式リファレンスのショートカットの紹介はこちら

強力なコード補完

標準的なコード補完として、コード入力中に常に補完候補を出してくれます。

普通にコーディングする分にも十分強力ですが、さらに強力なオススメコード補完機能をふたつご紹介します。

Live Template

まずはこちらをご覧ください。

psvmでpublic static void mainが自動生成される

psvm という4文字を入力するだけで public static void main が書けちゃう。

これがライブテンプレートと呼ばれる、IntelliJ IDEA 内に標準でいくつか用意されている省略言葉集。

他にも psfs fori sout など、標準で多くのライブテンプレートがあります。

0~9までの数字を標準出力する、単純な処理をライブテンプレートで書いてみます。

psvm, fori, sout だけでコードを書く

文字数にすると138文字(改行、スペース含む)のコードですが

psvm [Enter]fori [Enter] [Enter] 10 [Enter]sout [Enter] i

たったの15文字タイピング+エンター5回で書ききれちゃいます。

業務コードで上記のような処理は登場しないとは思いますが、コード補完として強力であることが伝わればと。

また、ライブテンプレートは、自分で登録することができます。

社内の共通記法などがあれば、おまじないテンプレートを作っておくと作業効率が上がりそうです。

公式リファレンスのLive Templateの紹介はこちら

Postfix Completion

この機能も百聞は一見に如かずです、ご覧ください。

Postfix Completion だけでコードを書く

先ほどライブテンプレートで書いたコードと同じコードを、Postfix Completionを使って書いてみました。

ループ数(実コードだとリストのlengthとか).fori でforループを作り、文字リテラル.sout で出力。

変数や式などのひとつの節に対して、ドットほにゃららで様々な補完を行うことができます。

さて、先ほどのコードで唐突に奇数判定をしたくなりました。Postfix Completionを使ってみましょう。

Postfix Completion でif文を作る

2で割り切れたら偶数、それを .not で否定形にして、.if でif文にして、.sout で出力。

すごく感覚的にコードを書いていけることが伝わればと。

公式ブログのPostfix Completionの紹介はこちら

柔軟なデバッグ機能

とあるメソッドに処理が入ったとき、どこまで進んで、どこで変数値がどうなって、というのをデバッグで追うことは多いと思います。

その際、大量の行ブレークポイントを打ったり、ひたすら sout したりログに吐いたり、コードが荒れることもしばしば。

IntelliJ IDEA ではブレークポイントに多くの設定や動作を仕込むことができます。

ブレークポイントの詳細設定画面です。

breakpointsの設定画面

StacktraceチェックボックスONで、その行のスタックトレースの出力が可能だったり

Evaluate and log に任意の式やメッセージを入れることで、コードを汚さずにデバッグログをコンソールに出力できます。

その他にも、ブレークポイントで停止する条件を細かく指定できたりします。

公式ブログのBreakpointsの紹介はこちら

また、IntelliJ IDEA Ultimate 版だと無償で利用可能な Chrononプラグイン というものがあります。

こちらは、実行時の全てのステップを記録し、後から参照できるツールです。

Chrononプラグインをインストールすると、ツールバーにChronon用のボタンが追加されます。

Chronon実行のボタン

Chronon実行の設定は、ボタンの左側のプルダウンから Edit Configuration... に入ります。

Chronon設定に入るところ

Chrononタブに移動し、実行を記録したいクラス・パッケージなどを指定します。

Chronon詳細設定画面

そしてChronon実行をすると、実行完了後、Chrononタブが出現し、全てのステップを見ることができます。

Chrononタブ

変数の値のHistory、任意のステップへジャンプ、Step Backword(前の処理にさかのぼる)などの操作ができます。

意図しないタイミングで変数が例外値を持ったり、突然Exceptionを吐いたり

通常のデバッグで追いづらいものもChrononを使えば、簡単に当たりを付けることができそうです。

公式リファレンスのChrononプラグインの紹介はこちら

ハンズオンセミナーを受けてみて

IntelliJ IDEA を自分なりに使いこなしていたつもりでしたが、全然本気を引き出せていないことを認識しました。

ハンズオンを通して、多くのインテリ機能と使いこなすテクニックを覚えることができました。

また、JetBrainsの他製品(UpSource / TeamCity)との連携のデモンストレーションを見せていただき、さらに活用する方法が見えてきた気がしました。

受講した他のエンジニアたちも、刺激的でとても楽しかったと喜んでいました。

ヨーヨー楽しかった。たくさんのグッズやステッカーをいただきました!

サムライズム様のグッズたち

さいごに

株式会社サムライズム では、毎月オープンのハンズオンイベントを開催されているとのことです。

上記で紹介したテクニックはハンズオンのほんの一部分、実際のハンズオンではもっと様々な操作を学ぶことができます。

IntelliJ IDEA を使いこなしている方もいない方も、受けないわけにはいかない内容です!

(ユースケ様、今回はお越しいただきありがとうございました!)

また、IntelliJ IDEA を使ったことのない方、是非お試し版・無料版からでも使ってみてください!

もう他のIDEには戻れないくらいの感動体験が待ってます。

IntelliJ IDEA で、いい出会いを。

ASKUL Engineering BLOG

2018 © ASKUL Corporation. All rights reserved.