LoginSignup
11
5

More than 1 year has passed since last update.

2022年最も見逃せない有用なGemまとめTOP58 (日本語訳)

Posted at

以下の記事の日本語訳です

2022年最高のgems

Rubygems.orgの公式レポートでは、2021年に最もダウンロードされたgemsについて言及します。
これにより、ruby on railsの開発者が何を使っているのか、どのrails gemが最も便利なのかわかります。

Rubyの便利なGemsとその使い勝手

gemを以下のようにいくつかに分類しました。

  • Activecord
  • View Helper
  • Authentication & Authorization
  • Debugging
  • Testing
  • Admin View
  • File Upload
  • Deployment
  • Code Quality
  • Payment
    など

Activecord

1. Activecord Import

ActiveRecord-importを使用すると、大量のレコードを簡単に挿入することができます。ActiveRecordの関連付けに従って動作しながら、必要最小限のSQLの挿入文を生成します。この機能を使えば、十分な知識を持つRoRの専任開発者を雇ったとしても、N+1インサートの問題に対処する必要はなります。ActiveRecordは10件のレコードをアップロードするのに最適な選択です。
このgemで数百のレコードをアップロードするのは大変な作業であることが分かるでしょう。しかし、外部データのインポートには有効です。ActiveRecord-importを使うと、変換時間が大幅に短縮されます。

GitHub: 50.8k Stars

2. Kaminari

約500万ダウンロードのKaminariは、最も人気のあるRails Gemsリストのトップです。このgemを使えば、何でもページネーションできます。ActiveRecordのインポートから、使いやすいスコープベースのAPIを使った簡単な配列まで、パジネーションを行うことができる。

GitHub: 8.2k Stars

3. Paranoia

レコードを論理削除するためのgemです。一度レコードを物理削除してしまうと、そのレコードを使用することは困難です。そこで、Paranoiaはモデルに対するスコープクエリでオブジェクトを隠蔽することで解決しています。しかし、厳密にレコードを削除するには、really_destroy gemを使用する必要があります。

GitHub: 2.7k Stars

4. PaperTrial

モデルの変更に伴い、undoやredoの操作にイライラすることはよくあります。PaperTrial gemは、変更ごとにすべてのバージョンに名前を付けることで、すべての変更を保持することを支援し、それゆえ、モデルでの作業が容易になります。

GitHub;: 6.3k Stars

5. Globalize

Globalize gemは、アプリケーションに外国語を追加すること、つまり、国際化に対応することを容易にします。Globalize gemは、Googleのi18n APIを利用しています。このgemは、非静的なデータベースコンテンツの翻訳を支援します。

GitHub: 2.1k Stars

6. AASM

Rubyクラスのためのステートマシンです。Ruby on Railsの開発者がrubyクラスに有限状態を追加できるようにするgemです。様々なORMのアダプタを提供する汎用的なライブラリです。

GitHub: 4.6k Stars

7. Pagy

Pagy は高性能なページネーションジェムです。その速さは、そのサイズ、独立性、シンプルさによるものです。このgemはあらゆる環境で動作し、あらゆるページングをサポートします。すべてのCSSフレームワークをサポートし、すべてのコレクションで動作します。

GitHub: 3.6k Stars

8. Cells

Cellsはtrailblazerなしで動作するスタンドアロンのRuby & Rails gemです。UIコンポーネントをビューモデルにカプセル化することができます。

GitHub: 3k Stars

View Helper

9. Draper

Draper を使うと、開発者はモデルの周りに簡単にデコレータを作ることができます。Draper GemをRuby on Railsアプリで使うと、ビューがとてもきれいになります。Draper を使えば、ヘルパーを書く必要はありません。開発者はモデルを使ってヘルパーを手続き的に呼び出す代わりに、デコレーターを簡単に定義することができます。また、オブジェクトの属性と拡張メソッドのリストが提供されます。

GitHub: 5.1k stars

10. Simple Form

Simple Form gemは、その名の通り、railsアプリケーションでフォームを効率的かつ明快なコードで使用できるようにするものです。このgemは、チェックリスト、ラジオボタン、ドロップダウンリストなどのフォーム要素を扱う際に、非常に柔軟な機能を提供します。

GitHub: 8k Stars

11. Meta Tags

SEOのベストプラクティスに忠実で、効率的なメタタグを作成することによって、SEOフレンドリーなアプリケーションを作成するのに役立つRuby on Rails gemです。

GitHub: 2.5k Stars

12. Slim

このテンプレートエンジンは、あなたのヘビーなコードをスリムなコード構造にします。Slim gemを使用することで、アプリケーションコードをシンプルに保つことができます。

GitHub: 5.1k Stars

13. Haml

HAMLはHTML Abstraction Markup Languageの略です。HTML/XMLドキュメントの構造とデザインを向上させるために使用されます。

GitHub: 3.7k Stars

Debugging

14. Pry

開発者は通常、コードを生成する際にライブラリ統合の問題やgemsのバインディングの難しさに直面します。その間に、彼らは多くのエラーに対処する必要があります。よって、十分な経験を持つ専用のRails開発者を雇うのが常に良いことです。これらの問題を排除し、エラーをデバッグするには、Pry gemは、理想的な選択肢であることが判明しました。このgemは、開発者がブレークポイントを設定し、ステップバイステップでコードのデバッグを実装することができます。Pryは、シンタックスハイライト、ランタイム呼び出し、コマンドシェルの統合、エキゾチックオブジェクトのサポート、柔軟で強力なコマンドシステムなどのユニークな機能のセットを持っています。

GitHub: 6.5k Stars

15. Better Errors

ユーザーがあまり魅力的でないエラーページに出くわしたとき、アプリケーションを放棄してしまうかもしれません。Better errors gemは、RoRの不器用で拒絶的なエラーページを、改善されたより良いエラーページに置き換えます。

GitHub: 6.8k Stars

16. Letter Opener

このgemを使うと、Railsアプリケーションが送信したメールのプレビューを、ブラウザの画面上で見ることができます。メールボックスのチェックや編集の手間を軽減してくれます。

GitHub: 3.4k Stars

Testing

17. RSpec Rails

RSpec Railsというgemは、ユニットテストケースを書くのが好きな開発者にとって完璧な選択です。このgemは、RailsプロジェクトのいずれかにRSpecフレームワークを統合することで、アプリケーション開発者を容易にする。ユーザーは必要なspecヘルパーと設定ファイルを生成するだけでよいです。このフレームワークはTDDとBDD環境で使用されます。簡単に言うと、Rspec Railsは説明的ですっきりした構文が特徴です。

GitHub: 4.8k Stars

18. Capybara

進行中のプロセスを短いフレーズで案内してユーザーを支援するためのテストを統合したgemです。開発者は主に権限付与のシナリオで使用します。RSpecと一緒に使われることが多いです。

GitHub: 9.6k Stars

19. Database Cleaner

このgemはテスト用データベースをクリーンアップします。クリーンアップのタイミングは、テストの起動前か、テストの実行前後で設定できます。Ruby 1.9以上のバージョンでサポートされています。

GitHub: 2.8k Stars

20. Shoulda_Matchers

Rspecと互換性のある検証/関連付けの一行テストを記述する素晴らしいgemです。RoRの開発者は、matchersを使って、アプリケーションの機能を素早くテストすることができます。

GitHub: 3.2k Stars

21. SimpleCov

このgemは、テストによってカバーしたコードの量(割合)と、まだカバーできていないコード量を示します。

GitHub: 4.4k Stars

22. Factory_bot

Factory botは、以前はFactory girlとして知られていたライブラリgemです。テストケース用のフェイクデータを提供します。テストケース用のフェイクデータを提供することで、毎回データを手入力する必要がなくなるので、テストが楽になります。

GitHub: 7.5k Stars

23. Faker

名前の通り、名前、住所、連絡先などのフェイクデータを生成するためのgemです。

GitHub: 10.1k Stars

Authentication & Authorization

24. CANCANCAN

CANCANCAN Gemは、複雑なアプリケーションを開発するのに適しています。ユーザーに多数のルールを持たせることができますが、開発者は一部のユーザーのアクセスを制限する必要があります。このGemは、ユーザーのアクセス制限の設定を簡単にし、すべてを一箇所で管理できるようにします。CANCANCANの「Authorizations definition library」モジュールにより、開発者はユーザーに対するルールを設定することができます。また、ヘルパーがアクセス前に権限を確認する必要があるため、ヘルパーが異なるオブジェクトに簡単にアクセスできるようになります。

GitHub: 5.1k Stars

25. DEVISE

ソーシャルネットワーク上でアプリケーションを作成したり、eコマースソリューションを構築したりする場合、通常、ソーシャルメディアのページにログインする必要があります。特定のアプリケーションのために、認証と認可を提供する必要があるのです。開発者の中には、この目的のために自分で開発を好む人もいれば、認証のためにこのgemsを好む人もいます。DEVISE gemは、最高のrails gems 2021の1つです。それは仕事を効果的かつ容易にします。

DEVISEには、Omniauthable, Database Authenticatable, Registrable, Confirmable, Trackable, Recoverable, Lockable, Timeoutable, Rememberable, FriendlyId, and Validatableの10種類のモジュールが含まれています。リソースURLは、各モジュールのプライマリーキー(データベースID)により簡単に識別することができます。しかし、開発者は最適化されていないウェブページのURLを扱う必要があるかもしれません。FriendlyIdは、このようなURLを、覚えやすく、ずっと親しみやすいWebページのURLへと簡単に変換します。FriendlyIdの最大の特徴は、Webアプリケーションのコードを変更する必要がないことであり、Rubyのgemとして有名です。

GitHub: 22.5k Stars

26. OmniAuth

OmniAuthはRuby on railsの認証gemで、Rackミドルウェアを使用した柔軟性の高いgemです。このgemは、FacebookやGoogleのようなソーシャルメディアのアカウントを介して認証を可能にします。このgemには、すぐに使える認証プロバイダがいくつか用意されているので、それを利用することができます。

GitHub: 7.5k Stars

27. Ruby-JWT

ユニークなrailsトークン認証gemは、RFC 7519 OAuth JSON Web Token(JWT)標準を実装したruby-JWTです。便利なrails jwt認証gemです。

GitHub: 3.3k Stars

28. Rolify

Rolifyは、リソースオブジェクトにサポートスコープを強制しないロール管理ライブラリであるrails gemです。

GitHub: 3k Stars

29. Pundit

Authorizationを提供する素晴らしいRails gemです。Rubyの基本的なクラスとオブジェクト指向のOOデザインを使うだけで、強力でスケーラブル、かつシンプルな認可を提供してくれるので、非常に使い勝手が良い。

GitHub: 7.6k Stars

Admin Panel

30. ACTIVE ADMIN

管理画面のインターフェイスを構築するためのフレームワークです。Active Adminは、ビジネスアプリケーションのパターンを抽象化し、開発者が少ない労力でエレガントで美しいインターフェイスを簡単に実装できるようにします。スコープ、ユーザー認証、グローバルナビゲーション、アクションアイテム、サイドバーセクション、インデックススタイル、フィルター、ダウンロード、APISなど、さまざまな機能を備えています。

GitHub: 9.2k Stars

31. Rails Admin

データを管理するためのRailsエンジンで、フレンドリーなユーザーインターフェイスを備えています。CSVへのデータエクスポート、カスタム検索、フィルタリング、カスタム認証、認可などの機能を利用することができます。rails admin gemをインストールすれば、すぐに使用できます。

GitHub: 7.6k Stars

32. Administrate

Administrate rails gemを使ってレスポンシブな管理画面を作成します。Active adminとrails adminの2つのgemを使いたくない場合、administrate rails gemが最適な選択肢になります。

GitHub: 5.4k Stars

Payments

33. Active Merchant

このRuby GemはShopifyによって保守・執筆されている。Active Merchantの主な目的は、異なる内部APIを使用して複数の支払いゲートウェイへのアクセスを提供する統一APIでユーザを容易にすることです。特にRuby on Railsウェブアプリケーションのために開発されたActive Merchantは、プラグインとして統合することも可能です。また、スタンドアローンのライブラリとして使用することも可能です。

GitHub: 4.4k Stars

34. Stripe Ruby Bindings

Stripe gemをインストールすると、Stripe.comとのやりとりができるようになります。このサイトは、すべての支払いをよりシンプルかつ簡単に処理するための素晴らしい機能を備えています。Stripe checkoutがモバイルユーザとデスクトップユーザの両方にパーソナライズされたカスタムビルドの支払いフローを提供する一方で、stripe.jsはクレジットカードの詳細を保存し、送信プロセスを通じてそれらを保護します。Stripeはandroid pay、apple pay、Amex Express checkoutをサポートしており、堅牢で強力なeCommerceサイトを構築できます。Stripeは最高のruby on rails eCommerce gemと考えることができます。

GitHub: 1.7k Stars

Code Quality

35. Robocop

Rubocopは基本的にRubyスタイルガイドに基づいたRubyの静的コード解析ツールです。Rubyのスタイルガイドに基づき、コードの違反箇所を自動修正し、強力で堅牢な書式設定機能を備えています。Rubocopは主要なRubyの実装とほとんど相性が良い。また、Rubocop にフォーマッタやカスタムコピーの機能を追加することは簡単であり、多くのオンラインサービスが Rubocop を使用しています

GitHub: 11.8k Stars

36. Robocop Rails

このgemは、railsのベストプラクティスとコーディング規約を強制するために、上記のrobocop gemを拡張したものです。チェックツールでrailsのコードスタイルを自動的にチェックします。

GitHub: 608 Stars

37. Ruby Style Guide

こちらはRoR開発者のコミュニティによる、コミュニティのための逸品で、rubyのコーディングスタイルのベストプラクティスを推奨しています。このガイドラインは、Ruby on Railsの専門家、プロフェッショナル、編集者の提案、フィードバック、推奨事項のコラボレーションです。

GitHub: 16k Stars

38. Overcommit

overcommit ruby on rails gemは、railsプロジェクトのGitフックを管理するものです。様々なフックをサポートしており、独自のフックを定義してリポジトリ間で使用することも可能です。

GitHub: 3.6k Stars

Security

39. Brakeman

Brakemanは、レールアプリケーションの最小の強制と脆弱性を識別し、発見するのに役立つ安定した、変更されていないセキュリティスキャナです。警告のリストを設定するだけで、不必要で重要でない通知の到着を制限で来ます。

GitHub: 6.4k Stars

40. Bundler

Bundlerは、どのマシンでも全く同じコードでRubyアプリケーションを適切に実行することを保証します。Bundlerは、特定のアプリケーションが依存するgemsのリストをダウンロードし、インストールすることができます。しかし、インストールする前に、Bundlerは各gemの最新バージョンの互換性をチェックし、同時に一緒にロードできるようにします。また、インストール後、新しいバージョンが利用可能になると、Bundlerはそれらのアップグレードを支援します。

GitHub: 4.9k Stars

41. Bundler Audit

Bundlerの上で動作するBundler auditは、アプリケーションの潜在的な脆弱性をチェックするのに役立ちます。Bundler auditのヘルプと支援により、膨大な時間を節約することができます。Bundler auditはgemfile.lockでrailアプリケーションを効果的にレビューしチェックするので、railアプリケーションのgemを一つ一つチェックする必要はありません。gemのバージョンを識別し、信頼性の低いgemの収集を停止します。

GitHub: 2.5k Stars

42. Secure Headers

Secure-headersは、レールアプリのレスポンスにセキュリティ関連のHTTPヘッダを実装することを気にするgemです。CSPなどのヘッダを適用できるようにすることで、クロスサイトスクリプティングやXFO、合体・混合コンテンツ攻撃を抑制し、クリックジャッキング攻撃の可能性があるコンテンツに当たらないようにすることができます。

GitHub: 3k Stars

File Upload

43. Carrierwave

ウェブアプリケーションを作るとき、開発者は画像や音声ドキュメント、動画など、いくつかの種類のファイルを投稿したりアップロードしたりできるようにします。しかし、特に画像に関しては、CarrierWave以外に便利な逸品はないでしょう。CarrierWaveは、画像処理とファイルアップロードの機能を持ち、画像のリサイズや角の調整を行うことができます。さらに、CarrierWaveはファイルを処理し、キャッシュするので、ユーザーは投稿されたテキストファイルを素早く解析したり、EXIFデータを抽出したりすることができるようになります。
CarrierWaveは、アップロードクラスが各データを保存し、あなたのコードをきれいに保ちます。

GitHub: 8.7k Stars

44. Minimagick

画像処理を管理・処理するもう一つのgemがMinimagickです。RMagickの小さな、あるいはミニサイズの代替品として機能します。CarrierWaveと同様、このgemはまさに逸品です。すべてのRAMリソースを節約し、回転、反転、ぼかし、サイズ変更、PNGのような有名なフォーマットへの変換など、混合された多様なタスクに対応することで効果的に機能します。このgemは、Rubyプロセスのメモリを削減し、ImageMagickのコマンドラインのすべてのオプションを利用するのに役立ちます。

GitHub: 2.7k Stars

Deployment

45. Puma

Pumaは、ウェブアプリケーションをホストし、デプロイできる有名なHTTPウェブサーバーです。デプロイはあらゆるソフトウェア開発サイクルにおいて重要な段階であるため、これらのウェブサーバーは鉄道アプリケーションの正確なデプロイを支援します。

GitHub: 7.1k Stars

46. Capistrano

通常の一般的なWebアプリケーションは、デプロイされる前にいくつかのステップを通過します。ファイルのコピー、データベースの転送や移行、アセットのコンパイルや配置など、さまざまな段階が含まれます。Webアプリケーションのデプロイを成功させるためには、自動化されたデポジットおよびデプロイツールが必要である。Capistranoは、多くの操作を管理・処理する自動デプロイツールで、サーバーに異なる役割のタグを付け、多様な段階を管理し、並列デプロイメントを実装します。

GitHub: 12.1k Stars

47. Chef

chefは非常に効果的なruby gemです。Capistranoと一緒に使うと、Chefは特定の場所にファイルを置いたり、パッケージをインストールしたりと、サーバーを処理し設定します。しかし、レールアプリケーションのデプロイでは、自動化およびカスタムビルドのための希少なリソースを所有しているため、Chefはまれにしか使われません。

GitHub: 6.9k Stars

APIs

48. Grape (used for API)

Grapeは基本的にRubygemsのためのRESTライクなAPIフレームワークです。これは、Rack上で動作するように、またはSinatraやRailsのようにすでに存在するWebアプリケーションを補完するために特別に作成および設計されています。RESTfulなAPIを効果的かつ容易に開発するための簡単なDSLを提供します。正規表現のサポートが組み込まれており、Grapeは多様なフォーマット、サブドメイン制限、バージョニング、コンテンツネゴシエーションなどの機能を備えています。

GitHub: 9.5k Stars

49. jsonapi-serializer

このgemはfast_jsonapiとしても知られており、Netflixのフォークである。Netflixのチームは、必要な初期サポートを提供しました。このgemは、複合文書に対するシリアライズの最適化されたバージョンを提供します。

GitHub: 1.1k Stars

Search

50. ElasticSearch

elasticseacrh gem は、Elasticsearch Ruby Client にアクセスするための Ruby に接続します。検索、セキュリティ、モニタリングの機能を提供します。

GitHub: 1.9k Stars

51. Ransack

Ransack gemはオブジェクトベースの検索を行うためのもので、これを使ってRailsアプリを検索することができます。また、AlgoliaやElasticSearchなどの高度な検索オプションも利用可能です。

GitHub: 5.2k Stars

その他

52. Bullet

Bulletは、クエリを減らすことによって、アプリケーションのパフォーマンスを向上させるために設計されています。アプリ開発の過程でクエリを監視しています。このRubyGemは、(N+1)回のクエリが必要なときにユーザーに通知します。また、カウンターキャッシュを使用する場合にも通知されます。

GitHub: 6.5k Stars

53. Webpacker

このgemは、JavaScriptと、コンポーネントベースのJavaScriptに関連するフォント、CSS、画像などのアセットを提供するために特別に設計されています。また、Webpackerはアプリケーションのすべてのアセットに使用することができます。全体として、Railアプリケーション開発のための素晴らしいソリューションを提供しています。このブログは、Ruby on Railsに興味がある方におすすめです。神話を打ち破り、事実を知り、なぜRoRがWebアプリケーション開発に理想的な選択であるかを理解しましょう。

GitHub: 5.3k Stars

54. Sidekiq

Sidkiqは、Rubyの処理に使われる標準的でクリーンかつ効率的なツールです。具体的にはスケジュールされたジョブのために、Sidekiqが使用されます。Redisライブラリは、このgemをサポートしており、ジョブ管理ストアとしてRedisを使用しています。Sidekiqは、マルチスレッド機能を備えているため、非常に多くの開発者に感銘を与えることに成功しています。これらの機能を所有し、Sidekiqを使用すると、顕著な速度で結果を出します。

このgemを使用する重要な利点は、適切にジョブを監視することを含む。ステータスの適切な処理と並行してジョブを実装する機会。SidekiqはRailsを必要としませんが、Railsと統合することでバックグラウンドの処理を明確にし、大幅に緩和します。

GitHub: 11.8k Stars

55. Figaro

FigaroはHerokuフレンドリーかつシンプルなRailsのベストgemsアプリの設定です。Railsを使って作成されたアプリケーションを安全に設定するためのYAMLとENVファイルです。このgemは、設定データとSCMを分離するために、十分に潜在的な規約を導入しています。YAMLファイルをパースして、その値をENVにロードします。

GitHub: 3.7k Stars

56. AHOY

JavaScriptやRubyなどのネイティブアプリでイベントや訪問を追跡するために使われる分析プラットフォームです。技術的には、Ahoyはgemではなく、Rubyのエンジンです。トラフィックの発生源、位置情報の発信地、クライアントのデバイス情報を含む訪問チケットを作成する役割を担っています。また、ウェブサイト訪問のUTMパラメータを知ることも可能です。Ahoyは、アプリケーション内のイベントや訪問を追跡することもできます。

GitHub: 3.6k Stars

57. Paperclip

ファイル添付で作業するのは簡単ではない。一般的に、大量の作業を伴います。開発者がタスクを適切かつ安全に実装するためには、あまりにも時間がかかる。Paperclipは、Railsアプリケーションの内部でプロセス全体を追跡するように設計されています。このgemが提供する付加的な利点には、画像のサムネイルへの変換があります。残念ながら、このgemfileは現在では非推奨となっています。

GitHub: 9.1k Stars

58. Delayed Job

Delayed Job gemは、バックグラウンドタスクの長時間実行アクションを処理することに関しては、2022年の開発のための最高のruby gemsです。Shopifyから直接抽出することができ、複数のタスクがジョブテーブルによって処理されます。Delayed Jobのユニークな機能としては、Image resizing、膨大な数のニュースレターの送信、スマートコレクションの更新、スパムチェック、HTTPダウンロード、バッチインポート、商品変更後のいくつかの更新などがあります。

GitHub: 4.7k Stars

最後に

この翻訳はDeepLの翻訳をベースに書きました。
誤字、翻訳ミス等がありましたがご指摘いただけますと幸いです。

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5