うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

IntellijのHansONに行ってきた

スポンサーリンク

皆様いかがお過ごしでしょうか。 先日サムライズムさんにお邪魔して、IntelliJの実践的なテクニックが学べるHansONに行ってまいりました。

3月19日(火) 2時間で使いこなす!JetBrains開発ツール ハンズオン #jbugj 15:30開始(15:00開場) - 株式会社サムライズム | Doorkeeper

モチベーション

会社でIntelliJを使った開発をしています(主にscala)。普段使って入るけどショートカットや便利機能をあまり使いこなさていなく、IntelliJの膨大な機能の大半は使っていないというもったいない状態でした。

そんな時、たまたま社内のIntelliJ研修担当になってしまい笑、せっかくだからとことんIntelliJを学びたいという気持ちで参加しました。

行ってみてどうだったか

知らなかった機能をたくさん教えてもらい、月並みな感想ですが非常に有意義でした。このブログでは、こちらで得たテクニックの中でも特に便利な機能をまとめて紹介したいと思います。

便利機能

JavaだけでなくRubyPythonも使える

IntelliJプラグインを入れれば、Ruby, Python, Javascript等のスクリプト言語scalaも対応しています。Intellljのショートカットがそのまま多言語で使えるので、学習コストが低くていいですね。

ちなみに、IntelliJの姉妹版としてPython用のPycharm等ありますが、IntelliJプラグインを入れるのと機能的には変わらないそうです。

Emmet記法が使える

htmlを編集する際、終了タグの自動挿入などの機能を提供しているエディタはよくあります。しかし、IntelliJはそれに加えてEmmet記法を標準装備しています。

例えば、このように書くだけで表も簡単に作れます。

これが

table.hello>tr#hello.td

こうなる!

<table class="hello">
    <tr id="hello">
        <td></td>
    </tr>
</table>

Postfix code completion

演習ではJavascriptを使用して便利な補完機能を教えてもらいました。その一つがPostfix code completionです。

一般的なスニペット機能ですと、単なるコード展開ですが、Postfix code completionは書きかけのコードの途中でスニペットをいい具合にフィットさせてくれるのが大きな違いです。

こちらが

boolean b = true;
b.if

このように展開されます。booleanのbがいい具合にifの中に入ってますね。

if (b) {
  |← カーソル
}

デバッグ機能

単なるブレークポイントを貼るだけではなく、ブレークポイントに条件をつけたり、ログを出したりと様々な機能が提供されているます。

Suspend機能: ブレークポイントに入るとそこでプログラムが止まるか、止まらずスルーするか設定できます。

Evaluate and log: ブレークポイントで停止した時点の値をログに出せます。値は計算して出すこともできます。 プリント文をそのままコードに書くよりお手軽ですね。

Gitの連携が便利

IntelliJでは普段Gitは使っていなく、今回様々な機能があることを教えてもらいました。 例えば、コミットのウィンドウでは差分を見ながら修正もできます。 ウインドウ上でどこをコミットに含めるかもチェックボックスで簡単に選択できますね。

f:id:konbu13:20190321112132p:plain

他、コンフリクト解消もチェックボックスで視覚的にできたりします。

その他便利機能

コード上のjsonsqlシンタックスハイライト付きで編集できる機能もありました。なかなか、他のエディタだと実現してない機能ではないかと思います。

また、データベース連携機能では、テーブルのデータの修正も簡単ですし、本番DBならリードオンリーにして修正できない設定もでき、ミスも防げます。

Update文を実行しようとした時、ありがちなのがwhere句を入れ忘れて全て更新してしまうミスですが、wherを入れていないと警告してくれる親切設計も。

また、Select文などのライブテンプレートも完備してます!

今回学んだ&便利なショートカット

  • Command+E …直近参照したファイルにすぐ飛べる
  • Comand+1 …プロジェクト・ペインに飛ぶ
  • Command+B …ジャンプ
  • Option+Enter…空気を読む
  • Command+K …コミット
  • Control+Enter…コミットの確定
  • Command+N…ファイル作成

終わりに

講義全般ではトラックパッドやマウスなしでなるべくキーボードだけで作業できることを目標に、場面場面で様々なショートカットが紹介されていました。 講師の方の教え方が丁寧で、ショートカットになれていない私でもすっきり進むことができました。

この知見を業務でも活かしてがんばります〜。