元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

Ginza.rb で IntelliJ IDEA を布教してきた話

Ginza.rb

みんなmac + CUIでアウェー感すごかった。前回の挙手でわかってた。だからこそ、あえてやった。

環境

IntelliJ IDEA

スクリーンショット 2014-06-20 02.30.47.png

IntelliJ IDEA -- The Best Java and Polyglot IDE - JetBrains

IntelliJ IDEA - Wikipedia

IntelliJ IDEA | サムライズム

Java用のIDEとして説明されてるけど、プラグインで他の多くの言語・フレームワークにも対応するよ。

IDE

Integrated Development Environment = 統合開発環境

  • エディタ
  • テスト
  • デバッガ
  • VCS
  • デプロイ支援

など

さらにRubyプラグインRuby/Rails用機能が充実するよ!

  • railsコマンド
  • rake
  • Rspec/minitest(テスト)

リモートインタプリタ

Windows上でRails開発→死ぬ(みんな知ってる)

IDEA 13になって、リモートインタプリタが安定してきた→神

あたかもローカルにあるように、リモートホスト上のRubyインタプリタが使えるよ!

  • 裏でSSHとかでごにょごにょしている
  • デバッガも使えるよ!

vagrant / Docker等と組み合わせることで、本番に近い環境で開発できるよ!

IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートインタプリタ Rails開発

・・・あたかもローカルにあるように、はちょっと言い過ぎたけど、使い方に気をつければまじ便利な機能だよ。

※たまに接続が切れたりしてん?ってなることがあるけど、IDEAの内蔵SSHクライアントで繋ぎ直すとうまくいく。きっとそのうち直る。(IDEA 13.1 + Ruby plugin 6.5.0)

※gemのインストール後などリモートからローカルに、恐らくコード補完などに使用するためのファイルコピーとインデックス作成が行われるっぽくて時間がかかるのが難点。リモートといいつつ実用上はローカルホスト上での仮想マシン相手に使用するのが精一杯と思われる。

デバッガ

JavaIDEなどでおなじみのブレークポイントを活用したデバッグRubyでもできるよ。

実行中のアプリがブレークポイントに達した時点で、ブラウザからIDEAが呼び出され、スタックトレースやメモリ上の変数の内容などを確認できるよ。

IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートデバッグ on Rails

コード補完

動的言語だってコード補完できるよ!

  • 完璧じゃないけどそれっぽく動くよ!
    • 例えば app/models/book.rb に追加したBook.olderのようなスコープや、book.read!のようなメソッドもちゃんと補完してくれるよ!
  • 超高速だよ!少なくとも僕の環境(VAIO Z21 Core i7-2620M)ではエディタ入力に際してもっさり感じたことはないよ!
    • IDEAのコード補完は入力中も常に表示するリアルタイム補完だよ!
    • たぶん評価とかはしてなくて、ファイル中の文字列とRailsの規約でインデックスしてるんじゃないかなぁ?

これが、Railsで使用する複数の言語すべてで機能するよ!

正直マジパネェって思ってるよ!

VCS連携

  • Git / Subversion など主要なバージョン管理ツールは対応してるよ!
  • 個人的にエディタ上で前回コミットからの変更箇所色分けされる機能が気に入ってるよ!
  • コミットログから変更箇所もわかりやすく表示できるよ!
  • 一通りの基本的な機能はGUIから行えるけど、よくわかんないときはCUI使っちゃうよ!
  • でも正直僕のチーム開発経験不足で使いこなせてないよ・・・

キーバインド

Emacs / vim キーバインド対応なのでそれらのエディタからも入ってきやすいよ。僕は前はEmacs使ってて、今Emacsキーバインド使ってるよ。

※「標準で対応してます」って行ったけど、vimプラグインだったよ・・・でもJetBrainによる公式プラグインだから標準と考えてよいと思ってるよ。そもそもRubyとかもそうだしね。

豊富な対応言語

IntelliJ IDEAはプラグインでどんどん対応言語増えるよ!

Railsに関係するところだけでもコード補完で挙げたように

などの言語、

などの主要なフレームワークに対応しているよ!(そしてこれらはプラグインやTypeScript用の型定義ファイルを利用することでこれからもきっとどんどん増えるよ!)

IntelliJ IDEA でAngularJSのコード補完を利用する

RubyMineもWebStormもIDEAでできるよ!

RubyMine」はもちろん、最強JavaScript開発環境と呼び声高い「WebStorm」 もIntelliJ IDEAのサブセットなので、基本的にそれらでできることはIDEAでもできると思ってよい・・・よね?たぶん。ちょっとUI違ったりするけど。

ふつう、Rubyだけで完結しないので、こういった周辺技術もまとめて対応しているってのは快適だよ!

さらに・・・次期Android公式開発環境「Android Studio」もIntelliJ IDEAがベースなのは周知の事実だけれど、その機能もAndroidプラグインとして切り出されていて、IntelliJ IDEAではこれを使ってAndroid開発も可能だよ!

The Professional Android IDE

つまり、IntelliJ IDEA 1本で

が全部対応できちゃうってことだよ!

個人的にはちょっと高いけどRubyMine買うぐらいならIDEAの方がおすすめだよ。

ついでに言うと、コミュニティプラグインだけど、Go言語も対応してるみたいだよ。→ Go language (golang.org) support plugin

Railsのバージョンアップ対応はどう?

少なくとも現状最新の Rails 4.1.4 には対応してるよ。

とりあえず毎年御布施(初年度198$ 次年度以降98$)で今のところ困ってないよ。

当面は安心して大丈夫じゃないかなぁ?

御布施の金額について

それ以上に稼がせて貰ってるし僕は納得してるよ。

布教の成果

全スルーされなくてよかった。

そういう意味ではEmacsももちろんありですけどね。

Windowsなら必須でしょうね・・・!そもそもWindowsでやること自体アレかもですが。

IDE重いでしょ?って言われるけど、そんな感じはIDEAについてはないですね。起動時のインデックス処理?などはちょっと重たいですけど。

できるのです!