無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

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\]]")\$ '

こんな感じに表示されるようになります。べんり!!

f:id:gdgd-shinoyu:20141027010849p:plain

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深く触っていないので、まずはいろいろと使い倒してみたいと思っています( ・`ω・´)