Posted at

便利(そう)なgemで打線組んだった

More than 3 years have passed since last update.

一度組んでみたかっただけです。野球は分からないけど・・・

なるべくド定番のgemを外してチョイスしてみました。

ほとんどのプロジェクトで有用であろうgemなので、何も考えずにGemfileに追加すればいいと思います。まぁそれは冗談ですが。


  1. (遊) did_you_mean

  2. (中) hirb

  3. (三) rails_best_practices

  4. (一) Goldiloader

  5. (二) brakeman

  6. (左) Annotate (aka AnnotateModels)

  7. (捕) rails_erd

  8. (右) rack-mini-profiler

  9. (投) ActiveHash


以下は各gemの概要説明ですが、打順では並んでおらず適当にカテゴライズして並べています。


デバッグ系


did_you_mean

高機能なIDEを使っていればさほど必要ないかもですが、メソッド名や変数名、クラス名が間違っていた時に正しい名称をサジェストしてくれます。

ただしサジェストしてくれるタイミングは実際にNameError等が発生したときです。


ActiveRecord系


hirb

rails console上でモデルインスタンスをいい感じに表示してくれます。

hirb-unicodeも併せてどうぞ。


Goldiloader

人類の大敵、N+1問題に立ち向かうための武器。

大抵の場合はこのgemを入れるだけでいいんじゃないかと思います。

シビアな部分は別途、従来通りにeager_load, includes, preloadの指定が必要かとは思いますが。

あとこのgemも万能ではないです。制約がGithubのREADMEに記載されています。


ActiveHash

詳細は下記ポストを見て頂ければいいと思います。私的には静的データ用というよりもちょっとしたプロトタイプを作ったりする場合に便利そうだと思いました。


ドキュメント系


Annotate (aka AnnotateModels)

テーブル情報(カラム名,属性,NOT NULL制約など)を対応するModelクラスのファイルにコメントとして書き出してくれます。


Rails ERD

ER図を作成してくれます。前述のannotate modelsが単体用途とすれば、こちらは俯瞰用途です。

使うには別途Graphvizが必要となり、若干面倒かもしれません。


コード解析系

ちなみに スタイルガイド に沿っているかをチェックしてくれるRuboCopについては、もうド定番になりつつあるかと思いましたので外しました。


rack-mini-profiler

プロファイル結果をブラウザの左上に表示してくれます。

↓のRailsCastsのスクショを見ると分かりやすいです。


rails_best_practices

Railsのベストプラクティスに沿っているかをチェックしてくれます。

チェック内容は ここ で、before/refactorが例示されているので分かりやすいです。


Brakeman

コードを静的に解析し、セキュリティ上の脆弱性がないかをチェックしてくれます。