イマドキ、Ruby on Railsで開発するならエディタはRubyMineだよね? 6出たよー!

社内の8割方の人間を敵に回すタイトルです。RubyMineを使いはじめてから、かれこれ1年が経ちますが、もうRubyMine無しではRuby on Rails使えません。それぐらいに便利なので、そろそろちゃんとご紹介しようと思うのです。

ちなみに僕は、

vim → Emacs → Sublime Text → RubyMine(今ココ!)

という感じにエディタを渡り歩いています。

6になって、最強が更に最強になった

つい先日、RubyMineがメジャーバージョンアップして6になりました。これにより以下の機能が加わり、より最強になりました。

  • IDEの中でターミナルを開けるように
  • Zeusを標準で扱えるように(どうせならSpringもサポートして欲しかったけど・・・)

「今までできなかったのかよ!」とツッコミを受けかねない機能追加なのですが、いちいちウィンドウを切り替えてターミナル叩きながらコーディングするとか、小汚いハックでZeusを使うといったことがなくなったため、大変便利になりました。

ちなみにZeusとは、Rails起動時の様々な読み込みをプリロードしておくことにより、スペックの実行やGeneratorの起動をクッソ速くしてくれるGemです。

普通にRubyMineを使ってていて嬉しいポイント

インクリメンタルなファイルサーチを気軽に使える

rubymine_01

Sublime TextのGoto Anythingのように、Cmd + Pでファイルサーチを呼び出すようにしています。ファイル間の移動はほぼ、このファイルサーチで行っています。

Find Actionで気軽にコマンド実行

あんまりターミナルで打ち込む量と変わらないのですが、Find Actionという機能を使うと、その場で様々なコマンドを実行することができます。例えばRakeタスクとか、Railsのジェネレータなど。

僕はCmd + Shift + PでFind Actionが起動するように設定しています。Sublime TextのCommand Paletteと同じですね。

いろいろショートカットを適切に紐付ければ一発で起動するので便利なのですが、僕はショートカットをすぐ忘れてしまうので、Find Actionから常に起動しています。

Live Reloadを標準サポート

Guard使えばいいんですが、せっかくIDE使っているので、IDEでサポートしてくれていると良いですよね。という訳で、サポートしています。標準なのは良いことです。

ちなみにLive Reloadとは、ファイルに変更があったら、自動的にブラウザもリロードしてくれる機能です。ファイルの変更をリアルタイムに確認しながら開発を進めることができます。

Flymakeを標準サポート

Rubyは動的言語なので、タイポによる惨事を防ぐためにも欠かせないです。そして、速いです。

「スペックをちゃんと書けば、事故は防げるんです(キリッ」という向きもあると思いますが、タイポがあるとTDDしているときでも謎なこけ方をしてハマることは多々あるので、あらかじめ防げた方が良いですよね。

ちなみにFlymakeとは、書いたそばからリアルタイムに文法などを検証してくれる機能のことです。EmacsのプラグインがFlymakeという名前だったので、僕はずっとFlymakeと言ってしまっているのですが、こういった機能の正式名称、知りません。。

補完がクッソ賢い

動的言語のcompletionなんて、あまり期待していないのですが、RubyMineのそれはクッソ賢いです。ある程度、変数に入っているオブジェクトの型の空気を読んでくれます。例えばモデルのカラム名なんかは、空気読んで補完してくれます。これでカラムのタイポも防げるってもんですよ!

Gitのサポートがそこそこ使いやすい

Emacsで使えるmagitが神すぎて、他のツールが軒並み霞んで見えるのですが、RubyMineのGitサポートもそこそこ使いやすいです。Diffも見やすいので、重宝しています。

DB直接覗けるよ!

開発環境のDBなんかは、Object Browser(懐かしいな・・・)みたいな感じで覗いたりSQL打てると便利なんですが、そんなこともできちゃいます。

指定範囲をパーシャルビューにまとめてしまう機能がある

「あ、ここパーシャルにしたいな」という瞬間、あると思います。RubyMineなら指定範囲を即座にパーシャルにできます。これは便利。

指定範囲の変更履歴を見られる

「この変更、どういった経緯で加えたんだっけ?」というのも、この機能で一発。犯人も分かります。

ブレークポイントも思いのまま

IDEで開発する最大の利点は、デバッグのときにGUIでブレークポイントを設定できることです。debuggerと打ち込んで、消さずにコミットする事故を起こさなくて済みますよ!

RSpecのMatcherの補完が嬉しい

Matcherの種類、多いですからね。

悪いところは?

外部Rubyファイルを読み込むと、文法チェックがなぜか1.8のものになってしまう

原因不明。{ kayu: :uma}みたいな書き方だとダメって言われてしまう。

起動し続けると重くなる

再起動すれば大丈夫です。

リファクタリングは暴走しがち

メソッド名変えたり、クラス名変えたりする機能は、あまり使わない方がいいかもです。。

総括

RubyMine、買いです。一時期「Personal Licenseは営利目的の開発に使えない」というデマが出まわりましたが、個人の方はPersonal Licenseの購入でオッケーです。ただし、Personal Licenseの場合は、会社の経費にはできないので注意が必要とのことです(JetBrains製品に関する良くある質問と答え )。

買う時期としましては、毎年クリスマスあたりにJetBrains製品のセールが行われるので、それを待つのが良いでしょう。「マヤ暦の終わりセール」など謎のセールを展開していたりするので、セール情報は注意深くチェックする必要があります。