みんなmac + CUIでアウェー感すごかった。前回の挙手でわかってた。だからこそ、あえてやった。
環境
- Windows 8.1 64bit
- IntelliJ IDEA 13.1
- VirtualBox / Vagrant
IntelliJ IDEA
IntelliJ IDEA -- The Best Java and Polyglot IDE - JetBrains
Java用のIDEとして説明されてるけど、プラグインで他の多くの言語・フレームワークにも対応するよ。
IDE
Integrated Development Environment = 統合開発環境
など
さらにRubyプラグインでRuby/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のインストール後などリモートからローカルに、恐らくコード補完などに使用するためのファイルコピーとインデックス作成が行われるっぽくて時間がかかるのが難点。リモートといいつつ実用上はローカルホスト上での仮想マシン相手に使用するのが精一杯と思われる。
デバッガ
JavaのIDEなどでおなじみのブレークポイントを活用したデバッグがRubyでもできるよ。
実行中のアプリがブレークポイントに達した時点で、ブラウザからIDEAが呼び出され、スタックトレースやメモリ上の変数の内容などを確認できるよ。
IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートデバッグ on Rails
コード補完
動的言語だってコード補完できるよ!
- 完璧じゃないけどそれっぽく動くよ!
- 例えば app/models/book.rb に追加した
Book.older
のようなスコープや、book.read!
のようなメソッドもちゃんと補完してくれるよ!
- 例えば app/models/book.rb に追加した
- 超高速だよ!少なくとも僕の環境(VAIO Z21 Core i7-2620M)ではエディタ入力に際してもっさり感じたことはないよ!
- IDEAのコード補完は入力中も常に表示するリアルタイム補完だよ!
- たぶん評価とかはしてなくて、ファイル中の文字列とRailsの規約でインデックスしてるんじゃないかなぁ?
- JavaScript / CoffeeScript / SASS / CSS / HTML / ERB など!
- ERB中のRubyコード(
<%= Hoge %>
)もちゃんと補完するよ!
正直マジパネェって思ってるよ!
VCS連携
- Git / Subversion など主要なバージョン管理ツールは対応してるよ!
- 個人的にエディタ上で前回コミットからの変更箇所色分けされる機能が気に入ってるよ!
- コミットログから変更箇所もわかりやすく表示できるよ!
- 一通りの基本的な機能はGUIから行えるけど、よくわかんないときはCUI使っちゃうよ!
- でも正直僕のチーム開発経験不足で使いこなせてないよ・・・
キーバインド
Emacs / vim キーバインド対応なのでそれらのエディタからも入ってきやすいよ。僕は前はEmacs使ってて、今Emacsキーバインド使ってるよ。
※「標準で対応してます」って行ったけど、vimはプラグインだったよ・・・でもJetBrainによる公式プラグインだから標準と考えてよいと思ってるよ。そもそもRubyとかもそうだしね。
豊富な対応言語
IntelliJ IDEAはプラグインでどんどん対応言語増えるよ!
Railsに関係するところだけでもコード補完で挙げたように
- JavaScript
- CoffeeScript
- SASS / SCSS
- CSS
- HTML
- ERB
などの言語、
- jQuery
- AngularJS
- Bootstrap
などの主要なフレームワークに対応しているよ!(そしてこれらはプラグインやTypeScript用の型定義ファイルを利用することでこれからもきっとどんどん増えるよ!)
IntelliJ IDEA でAngularJSのコード補完を利用する
RubyMineもWebStormもIDEAでできるよ!
「RubyMine」はもちろん、最強JavaScript開発環境と呼び声高い「WebStorm」 もIntelliJ IDEAのサブセットなので、基本的にそれらでできることはIDEAでもできると思ってよい・・・よね?たぶん。ちょっとUI違ったりするけど。
ふつう、Rubyだけで完結しないので、こういった周辺技術もまとめて対応しているってのは快適だよ!
さらに・・・次期Android公式開発環境「Android Studio」もIntelliJ IDEAがベースなのは周知の事実だけれど、その機能もAndroidプラグインとして切り出されていて、IntelliJ IDEAではこれを使ってAndroid開発も可能だよ!
つまり、IntelliJ IDEA 1本で
- Railsバックエンド
- HTML5/CoffeeScriptフロントエンド
- Androidネイティブクライアントアプリ
が全部対応できちゃうってことだよ!
個人的にはちょっと高いけどRubyMine買うぐらいならIDEAの方がおすすめだよ。
ついでに言うと、コミュニティプラグインだけど、Go言語も対応してるみたいだよ。→ Go language (golang.org) support plugin
Railsのバージョンアップ対応はどう?
少なくとも現状最新の Rails 4.1.4 には対応してるよ。
とりあえず毎年御布施(初年度198$ 次年度以降98$)で今のところ困ってないよ。
当面は安心して大丈夫じゃないかなぁ?
御布施の金額について
それ以上に稼がせて貰ってるし僕は納得してるよ。
布教の成果
全スルーされなくてよかった。
複数言語で開発すること考えるとIntelliJというのも1つの手なんだよな。#ginzarb
— Masatoshi Iwasaki (@masa_iwasaki) 2014, 7月 15
そういう意味ではEmacsももちろんありですけどね。
WindowsならIntelij ideaが良さそう #ginzarb
— はらぱん@日本シーエイダブリュウ (@harada4atsushi) 2014, 7月 15
Windowsなら必須でしょうね・・・!そもそもWindowsでやること自体アレかもですが。
— Tomoko Sohda (@saber_chica) 2014, 7月 15
IDE重いでしょ?って言われるけど、そんな感じはIDEAについてはないですね。起動時のインデックス処理?などはちょっと重たいですけど。
IntelliJ ideaでAndroid開発出来るだと!? #ginzarb
— はらぱん@日本シーエイダブリュウ (@harada4atsushi) 2014, 7月 15
できるのです!