ようやくIntelliJ IDEAハンズオンを読み終わりました。
タイトルの通りなのですが、もう3年早く読みたかったです。
今年の春くらいに、14年近く使っていたEclipseからIntelliJ IDEAに移行しました。
最初は中々うまく使えなかったのですが、Eclipse歴が長いのでEclipseの操作はIntelliJだとどうやるのかなーって調べながら何とか使えるようになってきました。
ですが正直な話、結局はEclipse以上に使いこなすことはできておりませんでした。
IntelliJ IDEAハンズオンを書かれているのは、サムライズムの山本さんでホームページを見てもらえるとわかると思いますが、IntelliJ IDEA(JetBrains)の代理店です。
またIntelliJでわからないことがあって検索エンジンで調べるとサムライズムのページにたどり着くことも何度かあるくらいです。
山本さんが書かれてるので、間違いないと思って購入しました。
結果、素晴らしかったです。
IDEとかエディタって自分が困ったときに特に自分みたいに周りにIntellJ IDEAを使っている人がいない状況だと習熟度が上がらないということがあると思いますが、この本を読んで「プロ」とまでは行かないまでも愛用のIDEとして使えるようにはなるのではないかと思います。
ちなみにショートカットはMac版だけではなくWindows版も記載されております。
僭越ではありますが、IntelliJ IDEA初心者として各章の読みどころを書きたいと思います。
第1章・・・はじめに
IntellJの説明とインストール方法などが書いてあります。
また、幾つか種類があるのでどのIDEを使えばよいのか簡単にではありますが書いてあります。
第2章・・・開発を始める
プロジェクトの作成方法やレイアウトの説明などが書いてあります。
自分が最初に戸惑ったのがレイアウトです。
特にIntelliJ IDEAは画面の端にいろんなボタンがあってそれをクリックすると展開されます。
第3章・・・ファイルの編集
実際にStatic Web形式のプロジェクトを作成しながらエディタの保管機能やリファクタリングを行います。
特にPostfix completionは必見の機能だと思います。
熟練した人が使いこなすと何してるのかわからないけど、コードが生えていく感じがするのではないかと思います。
ちなみに自分はまだ油断しているとif文を自分で書いてしまいます。
第4章・・・実行・デバッグ
FizzBuzzをコーディングしてデバッグを行いながらブレークポイントを使ったデバッグなどを行います。
第5章・・・プロジェクト内の移動
IDEで最も使うと思われる変数ジャンプやメソッドジャンプなどの機能です。
この章を読むまでエディタの20%くらいの機能しか使えてなかったと実感するぐらいいろいろな機能が書いてあります。
章の末ページにショートカットがまとめてあり慣れるまでは必須にページです。
第6章・・・バージョン管理システム
普段はSourceTreeを使っていています。コミットとかマージはSourceTreeでやりますがrebaseはgitコマンドを使っています。
なのでお恥ずかしいことにIntelliJ IDEAでバージョン管理システムを操作するのは初めてだったので非常に勉強になりました。
SubversionやGitなどのVCSに依存せずに同じ操作ができるみたいでした。
なのでChangelistという概念に慣れるのにちょっと時間がかかるかも
本紙には記載がなかったのですがGitのgit commit --amend
もできますよ。
あとgit rebase -i
もできますよ。
詳しくはこちらのページをご参照ください。
第7章・・・データベースを操作する
お恥ずかしい話ですが、この章を読むまでIntelliJでデータベースを操作したことはほとんどありませんでした。
Windowsを使っているのでデータベース接続するときはA5:SQL Mk-2を使っています。
基本的に操作も早いし何よりSQL整形ができるのでよく使っています。
ですがIntelliJのデータベース機能も凄まじいです。
個人的にびっくりしたものを簡単に書いていきます。
ER図の生成
A5:SQL Mk-2も既存のデータベースからER図を作成できますがIntelliJでも作成できます。
しかもすごい見やすいと思います。
こんな感じです。
SQL文の補完
A5:SQL Mk-2でももちろん補完できますがIntelliJは更にプログラム内で補完ができます・・・。
例えばSELECT * FROM
って書いて補完するとテーブル名が補完されます。
しかも今気がついたのですが色分け表示されてますね。
実行計画の参照
select文で意図したindexが使われているか確認するときにexplain
を使うと思うのですが、普通に実行するとSQLのレコードが表示されます。
第8章・・・IntelliJ IDEAのプロジェクト管理
EclipseからIntellJに乗り換えて、中々慣れないことの一つがプロジェクト管理だと思います。
ただ実際のところ、自分が使った感じだとIntelliJの標準に従えば取り急ぎ開発はできる印象があります。
Javaの場合だとsrc/main/{java,resources}
、src/test/{java,resources}
を作ればIntelliJが気を利かせてソース、リソースディレクトリに設定してくれた記憶があります。
この章ではプロジェクト管理の基本となるプロジェクトとモジュールの概念を説明してくれています。
本章とは離れますが、自分はEclipseを使っていたときにファイルを保存すると自動的にコンパイルが行われるのでSpringBootを使ったAutoReloadをかけていました。
IntelliJだとデフォルトだと保存時に自動的にコンパイルは行われないので出力クラスを見てもクラスファイルが更新されていないので、かなり戸惑いました。
設定を変更することで自動コンパイルすることも可能です。結局自分がIntelliJの標準に合わせて適当なタイミングでビルドしています。
最初はなれなかったですが不思議なもので今はそれでも不便なく開発できるようになりました。ビルドといっても、おそらく差分ビルドしてくれているので早いです。
まだまだ説明できるくらいプロジェクトとモジュールを理解できたわけではありませんが少し理解したような気がします。
第9章・・・Java EEプロジェクトで開発する
すみません。Java EEは自分には高尚すぎて理解できる気がしないので一旦飛ばしました。
余裕ができたら読みます。
第10章・・・いろいろなプロジェクトで開発する
主にJavaですがIntelliJでSpringやSpringBootでの開発を行うため手順が書いてあります。
その他にGroovyや最近話題のKotlinやScalaなどの設定方法も書いてあります。
更にプラグインをインストールすることでJava以外にPHPに対応するPhpStormやPythonに対応するPyCharmについても書いてあります。
自分は最近LaravelでPHPを書いていたのですが、PHPの経験が全くない、IDE以外のエディタのノウハウが全くない自分にとってIntelliJのPHPサポートは本当に助かりました。
IntelliJがなかったら・・・と思うとゾッとします。
また本章には記載がありましたがIntelliJのGroovyサポートは非常に素晴らしいのでSpockでテストを書いているときに非常に役立ちました。
このGroovyサポートやSpockのテストサポートは自分がEclipseからIntelliJへの乗り換えを決断した大きな理由になりました。
まとめ
一部の章は試せてなかったのですが、それ以外の章は実際に読んで試せる部分は試しました。
最近は技術本を買っても買って満足して中々最後まで読めなかったのですが、この本は久しぶりに最後まで読みました(すみません、9章だけ飛ばしました)
自分がIntelliJをもう少し使えるようになりたいと思っていたから最後まで読めたのだと思います。
もし、IntelliJを使ってみたいと思っている、一度使ってみたが今使っているIDEとあまりにも異なるので使うのをやめた、という方がおられましたら本紙と一緒に読んでいただければと思います。
ちなみにIntelliJのUltimateは30日ほど無料で使えたような気がします。違っていたらすみません。
また、最後に誤解がないように書かせていただきますが自分が満足しているIDEがあればそれを使うのが一番いいです。
IDEの乗り換えは非常にリスクとコストがかかります。EclipseやNetBeansでの開発に不満がなければInteliJ IDEAを使う必要はないと思います。
自分がEclipseを長い時間使っていたという理由でEclipseという名前を出していますが、自分自身Eclipseは非常に優れたIDEだと思っていますしEclipseがなければJavaを書いていたかどうかも怪しいです。
余談
本当に余談ですが、誰かの助けになれば・・・。
違うプロジェクトの開き方
Eclipseだとプロジェクト一覧が表示されていて一つのウィンドウで複数のプロジェクトのファイルを開けてわかりやすいのですがIntelliJは一ウィンドウに一つのプロジェクトは開けません(多分・・・)
最初これどうやって他のプロジェクトを開くんだっけ?と悩みました。
File > Closeでプロジェクトを閉じると最初の画面が開きますのでプロジェクトを選択して開けます。
他によいやり方があるかも・・・
左のツールウィンドウを閉じてしまった
[Alt] + F4でタブ閉じているときに勢い余って最後のタブ(エディタ部分)を閉じて更に[Alt] + F4をすると左のツールウィンドウも閉じられます。
この場合はウィンドウ一番左のツールウィンドウタブのProjectか[Alt] + 1で表示されます。
一番左のツールウィンドウタブが小さいので気が付かずに右往左往していました・・・。
ファイル保存時にクラスファイルが更新されていない
Eclipseを使っていると最初戸惑うかもしれませんがIntelliJのデフォルトです。変更することもできます。
Windowsなら[Ctrl] + F9
でビルドできます。
このときにクラスファイルが更新されていると思います。
Lombok使いたい
IntelliJにプラグイン(アンオフィシャル)をインストールすると使えます
Doma使いたい
使えます。
自分はIntelliJ用のプラグインをインストールしていないのですが普通に使えます。
ただ申し訳ないことにどのように設定したかは覚えておらず最近はJavaの開発から少し距離があるので次構築することがありましたら記載します。
テストクラスと実装クラスの移動(ショートカット)
EclipseではQuickJUnitのお世話になっていたのですがIntelliJでは標準でショートカットが用意されています。
Windowsでは[Ctrl] + [Shift] + F9
で相互移動できます。
ちなみに実行は[Ctrl] + [Shift] + F10
です。
ショートカットの変更
これは難しいところですが自分は極力変更しないでどうしても我慢できないところは変更する方針です。
ちなみに、今のところ変更はしていません。
IDEには思想があって歴史的な経緯はあるかもしれませんがショートカットには理由があると思います。
郷に入っては郷に従え
で自分が合わせるようにしました。
特に[Ctrl] + w
がタブを閉じるではなく唐突な文字選択なので無意味なショートカットとしか理解していなかったのですが、本紙を読んでショートカットの意味を知り非常によく使うショートカットになりました。
ちなみにExpand Selectionというショートカットです。
あとQuickJUnitを使っていたときの[Ctrl] + 9
と[Ctrl] + 0
もIntelliJでよく間違えていましたが、最近は油断しなければ間違えることがなくなりました。
意外に慣れるものです。