Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1)
これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第1回
Ruby on Railsを使ってより実践的なWebアプリを開発するために欠かせないのが、RubyGems(gem)です。本連載では、Rails開発において開発効率を格段に上げてくれること間違いなしの定番gemについてご紹介します。第1回、2回では、ユーザー認証機能の実装するにあたり定番と言えるgem「devise」を取り上げます。
Rails開発におけるRubyGemsの役割
実践的なRails開発においては、たくさんのgemを使用します。Rails初心者の方はまず、Railsチュートリアルから入ることが少なくないでしょう。しかし、チュートリアルを終えて、いざRailsを使って実際のWebアプリを開発しようとしてもチュートリアルレベルの知識だけでは思うように、そして効率的に開発することは難しいのではないでしょうか。また、既に開発が進んでいるRailsアプリのプロジェクトに途中から参加してプロダクトのコードを読んでみて、理解できない場面に遭遇することも少なくありません。
より実践的なRailsアプリを開発する場合、既にOSS(オープンソース)として公開されている多くのgemを使用します。Railsプロジェクトで導入されているgem一つひとつの役割や使い所をちゃんと理解することで、より深くプロダクトのコードも理解することができます。Railsアプリを開発する上で、どんなgemがあるのかを知ることはRails開発初心者を脱するために重要な要素の1つです。
gemの分類
gemの役割は一言で言えば、「開発効率を上げること」であると言えます。しかしgemの役割をより細かく見ていくと、どのような機能を提供するかによって分類することができます。
| 分類 | 詳細 | 代表的なgem | gemの機能 |
|---|---|---|---|
| 機能を追加 | Railsアプリに機能を追加するもの | devise、sorcery | ユーザー認証機能 |
| 開発を補助 | Railsアプリのコード記述を効率化するもの | slim、haml | テンプレートエンジン |
| 機能を整理 | ビジネスロジックを整理するもの |
active_decorator、 draper |
デコレーター層を追加 |
| テスト自動化 |
テストを自動化するフレームワーク など |
rspec、turnip | テスティングフレームワーク |
なお、表に示したslimとhamlの関係のように、ほぼ同一の機能を提供するgemも複数存在します。既に開発が進行しているRailsアプリだとgemは選定済みですが、Railsアプリを新規で開発する場合や新たに機能を追加する場合に、どのgemを選定するかには注意しなくてはいけません。以下の点を考慮して選定を行う必要があります。
- 開発する機能に沿ったgemか
- 類似の機能を持つgemがあるか
- 使用実績がどれくらいあるか
- プロジェクトのRuby/Railsのバージョンをサポートしているか
- 開発コミュニティが活発か
- プロジェクトに携わる開発者同士でgem導入の合意が取れているか
特にプロダクトに携わる開発者が複数いる場合、独断でgemを選定するのではなく、上記の点を踏まえて周囲の有識者に確認するなど、選定したgemを入れて開発することの合意を取ることが大切です。逆に1人で開発している場合は自由に選定できます。とはいえRails開発に慣れていれば自信を持ってgem選定できるでしょうが、そうでない場合はRailsもくもく会などに積極的に参加して有識者にアドバイスをもらうと良いでしょう。
この記事は参考になりましたか?
- これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 竹馬 力(チクバ ツトム)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
