Tech Racho エンジニアの「?」を「!」に。
  • 開発

[Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版)

こんにちは、hachi8833です。今回はRails 5を対象に、実はなくてもよいgemや使われなくなりつつあるgemをリストアップします。ネット上の情報が古いことに気づかずにこうしたgemを導入してしまうと後々変更が面倒になりますね。

本記事は今後も継続して更新いたします。

本記事と逆の、Rails 5向け厳選・定番gemリストについては以下をご覧ください。

【募集】不要なgem・使われなくなりつつあるgem情報

こうしたgemが他にもありましたら、記事末尾のフォームまたは@techrachoまでお知らせください。確認の後、本記事に追記いたします。

実は不要なgem

quiet_assets

ログチェック時に邪魔になりがちなアセット(静的ファイル)へのアクセスログを抑制します。

以前のRailsでは広く使われていましたが、sprockets-rails 3.1.0(#310)でアセットログ出力を設定できるようになってから、このgem自身のREADMEで非推奨と記載されています。

さらに、Rails 5とRails 4.2.7以降ではdevelopmentモードでのアセットログが標準でオフ(config.assets.quiet = true)になっています。

developmentモードでアセットログを出力したい場合は、config/environments/development.rbでconfig.assets.quiet = falseと設定します。

watchrなどのファイル更新監視gem

開発中のファイル更新監視&スクリプト起動用プログラムにはいろんなものがあります。watcherは後述のzeusの一部としても使われていましたが、更新されなくなって随分経ちます。

開発中にファイル更新を検出してRSpecやRubocopを自動実行したりブラウザプレビューを自動更新したりしたいのであれば、guard gemを使うか、RubyMineなどのIDEにある機能を使うのがよいでしょう。

  • 参考: Guard alternatives -- さまざまなファイルウォッチャーを紹介しています(Guard wiki)

zeus

開発中にRailsを素早く起動するプリローダーとしてzeusがよく使われていましたが、Rails 5には公式には対応していません。

現在のRailsであればspring gemがデフォルトのプリローダーなので、zeus独自の機能がどうしても必要ということでもなければspringをそのまま使うのがよいでしょう。

migration_comments

Railsマイグレーションファイルに書いたコメントをスキーマとデータベースに自動反映するgemですが、Rails 5ではこの機能が標準装備されています。

参考: [Rails 5] マイグレーション時にデータベースのカラムにコメントを追加する

hirb-unicode、awesome_print

現在のRailsにはカラーのpretty print機能が標準装備されています。hirb-unicodeはインストールするとむしろモノクロになってしまいます。

使われなくなりつつあるgem

ZenTest

Rails2系〜3系初期までは主流だったテストGemですが、今はほぼRSpecとMiniTestに集約されて見かけなくなりました。

Paperclip

添付ファイルをActiveRecordで管理できる、シンプルな設計のgemです。以前は広く使われていましたが、最近はCarrierWaveの方が人気が高いようです。

Paperclipは今も更新が続いていますしGitHubの星の数でもCarrierWaveに勝っていますが、CarrierWaveの台頭でシェアが下がっている可能性がありますので、念のため確認しておくとよいでしょう。

追記(2018/08/22): Paperclipは開発が終了しました。

Rails: PaperclipからActiveStorageへの移行ガイド by thoughtbot(翻訳)

debugger

Railsでかつて多用されたデバッガですが、Ruby 1.9以下でしか動作せず、更新もほぼありません。

Railsのデバッガであればbetter_errorsがおすすめです。

twitter-bootstrap-rails

Bootstrap系のgemとしてかつて多用されていましたが、現在であればTwitter公式のtwbs/bootstrap-sass gemが確実です。

paranoid系gem(rails3_acts_as_paranoidやacts_as_paranoidなど)

データベースの論理削除系gemにはparanoidやparanoiaといった名前が付いたものが他にもいろいろあり、なかなか紛らわしくなっています。
現在はrubysherpas/paranoia gemが使われることが多いようです。Rails 3/4/5に対応しているとのことです。

ただし論理削除はバッドプラクティスに陥りやすいので、導入は慎重に。

jQueryやJavaScriptライブラリ導入用gem

Rails 5.1に向けてyarnやWebPackの導入が進んでいることもあり、今後はjquery-railsなどのjQuery/JavaScriptライブラリ導入用のgemはだんだん使われなくなっていくことが予想されます。

今後rails newするときはこれらのgemの導入は控えめにし、今のうちになるべくyarnでJavaScriptライブラリを管理するのがよいでしょう。

用途によって使い分けたいgem

cancancan

アカウントに応じてリソースアクセスを制限する、いわゆるauthorization用のgemです。
cancancanは、簡単なauthorizationには便利ですが、大規模なリソースアクセス管理になると辛くなってくる傾向があるようです。

大規模な用途では、よりオブジェクト指向が強く、純粋なRubyクラスで実装されているPundit gemがよく利用されています。

番外: 実は割りといいgem

turbolinks

turbolinksはページのナビゲーションを高速化するRails標準gemのひとつですが、Rails 4の頃はページの挙動がわかりにくくなるためか目の敵にされることが多く、「速攻で外した」と記載している記事をよく見かけます。

好みもあるので一概には言えませんが、Turbolinksも多くの修正や改良を重ね、特にRails 5以降では以前に比べてかなり素直な挙動になっているようです。
Rails 5でrails newするのであれば、急いで外さずにしばらく様子を見てからでよいかもしれません。案外そのまま使い続けるかもしれませんよ。

関連記事

ご意見・ご感想はこちらでどうぞ


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。