Ruby+Railsの開発で使っているもの、について書いてみる
いろいろできて、いろいろ見えないRuby
今現在は、Rubyをメインに開発進めてる仕事してます(`・ω・´) 前職はC#でWeb開発をしていたためか、なかなかRubyに慣れない日々が続いております。
暗黙的にメソッド生やされると、なにやってるか追うのが大変つらいので、用途絞って使って頂きたく候。
という、無駄なボヤきは、見なかったことにしてください。
そろそろ、仕事で触って2ヶ月くらいになるので、振り返り含めてまとめてみます。
エディタ
RubyMine使ってます。エディタというよりIDEですね。
vimにプラグインいれまくったり、Atomをいろいろイジってみたりといろいろやりましたが、コードの検索精度とかその辺が強力すぎるので、RubyMineに落ち着きました。
ゆとラーなので、楽な方に流れるのは、まあいつものこと。むしろ正義ですらある( ・`ω・´)
とはいえ、使っている機能はそんなに多くないです。キーバインドも対して変えてないし。
仕事で使っているショートカットとか、
CMD + SHIFT + O
Fileサーチ。検索したソースファイルに一発で飛べる。CMD + B
定義元ジャンプ。メソッドなどの定義している位置へ、一発移動できます。
とはいえ、動的言語。完全な補完は無理で、複数同じ名前で定義している要素があると、候補の中から探す作業が必要になります。
まーこれはしゃーない。CMD + @
一つ前のジャンプ元に戻る。CMD + Bした後によく使います。
こんなもん。
他の機能は、まだショートカット覚えきれてないので、Find Action(Sublimeのコマンドパレットみたいなやつ)を駆使してやりくりしてます。
リファクタリングの機能が強力なのは大変よいです!
ただ動的言語なので、稀に暴走して大変なことに…。リファクタ後は、必ずDiffチェックするようにしましょう。
Bash
IDE使うといっても、Gitコマンド使ったり、その他もろもろのツールを使う時は、やはり黒い画面を使う必要があるものです。
ある程度Bashの使い心地を向上しておいた方が、いろいろ捗ります。
Terminal.appは早々にやめて、iTerm使ってます。単純にカラースキームの変更が楽だから、ですね。
あと、今自分がどのブランチにいるか、がひと目で分かるようになっていると捗る。
Git使って開発していると、頻繁にブランチを行き来するので、間違った操作しないように、注意するのは大事なことです。間違ってmasterブランチにpushすると大変面倒なことになりますしね…。
自分は、Git-Promtとか使って、常に表示できるようにしています。
http://mironal-memo.blogspot.jp/2012/08/git-completion.bash.html
使用するためには、.git-prompt.shを、homeに配置します。
curl -l ”https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh" > ~/.git-prompt.sh
設定は.bash_profileにこんな感じで。
source ~/.git-prompt.sh GIT_PS1_SHOWDIRTYSTATE=true PS1='@\u \W$(__git_ps1 "[\[\033[32m\]%s\[\033[0m\]]")\$ '
こんな感じに表示されるようになります。べんり!!
SQLクライアント
コマンドラインつらい(;ω;`)なのでGUIでも操作できるやつを使います。
大昔にRails使った開発やったときは、某Phpmyadminとか使ってましたが、辛い。
Sequel Proがマジ便利です。全部これで済ませられます。個人的には鉄板なツール。
他にも、MySqlWorkbenchとかあるのですが、使い勝手がそれほど良く感じなかったので、すぐ乗り換えましたね…。なんかストレス溜まるんですこれ。
Gem
汎用的に使えるやつを上げてみる。大体、どんなプロジェクトでも、汎用的に使えると思います。
作成元か、使い方を載せてるリンクを同時に貼っておきます( ・`ω・´)
Better errors
Railsのエラー画面を綺麗にするやつ。RailsでWeb開発するときは必携ですね。
http://morizyun.github.io/blog/better-error-gem-rails-ruby-rack/
hirb
rails-console(irb, pry)でActive Record結果を整形して表示することができます。
http://blog.dakatsuka.jp/2011/05/14/hirb-rails-console.html
pry
Ruby-Console irbを機能拡張したもの。実行結果のハイライトや、shellを実行できる機能、他の便利なGemが使えるようになること、等メリット多めです。
http://morizyun.github.io/blog/pry-command-rails-ruby/
pry_rails
rails start でpryが起動するようになります。
http://qiita.com/yaotti/items/c6e850010f36acedb0e1
railsは、標準だとirbを立ち上げるので、Railsでもpry使いたいときは必須です。
pry_byebug
ラインデバッグできるようになります。
https://rubygems.org/gems/pry-byebug
コード上に、binding.pryと書くと、そこを通ったタイミングでブレークするようになります。
unit_testや、Rakeタスク通すときにも、止まるようになるので便利。
ただ、これruby2.0以上でしか使えないので、それ以外の環境では、pry_debuggerなるものを使います。使い勝手はどちらも同じ感じですね
pry_doc
通常、Rubyでは、Deepな領域であるC側のコードを見ることができません。
pry_docsを使うと、pry上でではありますが、このコードを見ることができます。
http://qiita.com/joker1007/items/42f00b12c65bbec0e50a
メソッドの内部構造を知ることは、効率のよい開発をするために必須だと思っています。
なにかわからんことあったらガンガンコード読むと、いろいろと捗るようになります( ・`ω・´)
pry-stack_explorer
pry上で、コールスタックが参照できるようになります。デバッグに重宝します。
http://shirusu-ni-tarazu.hatenablog.jp/entry/2012/11/04/180908
動いているのに、そのメソッドなりクラスが見つからない、メタプログラミングなダークサイド臭のエラー特定するとき、あると大変助かります。
rails.erd
ER図をかいてくれるツール。
http://qiita.com/satton_maroyaka/items/55e6cf42bd677c94d0d5
開発中に、テーブル定義書的なドキュメントを作るときに使えます。
また、モデル間のRelationを見るためにも必携ですね。
実テーブル自体が、リレーション持っていなくても、RailsのAssociationに従って図を生成してくれるので、Railsを使うときは、これ使った方がよいですね。
spring
railsの起動を早くしてくれるやつ。
http://blog.livedoor.jp/sasata299/archives/51925482.html
裏側でrailsのプロセスをあげっぱなしにしておいて、それを使うようにすることで、起動時のライブラリロードとかの、あれこれを解決してくれるようです。
終わりに
Rubyは良い言語ですが、それは、たくさんのRubistが公開してくれている情報や、Gemが豊富にあるからだと思っています。
それだけ、開発者を惹きつける何かがあるんでしょうね。
自分は、「型付け欲しいなぁ・・・」とかボヤきつつ、Scalaの方を見てたりしていますが。
まだそれを理解できるところまで、Ruby深く触っていないので、まずはいろいろと使い倒してみたいと思っています( ・`ω・´)