SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール

Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1)

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 Ruby on Railsを使ってより実践的なWebアプリを開発するために欠かせないのが、RubyGems(gem)です。本連載では、Rails開発において開発効率を格段に上げてくれること間違いなしの定番gemについてご紹介します。第1回、2回では、ユーザー認証機能の実装するにあたり定番と言えるgem「devise」を取り上げます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Rails開発におけるRubyGemsの役割

 実践的なRails開発においては、たくさんのgemを使用します。Rails初心者の方はまず、Railsチュートリアルから入ることが少なくないでしょう。しかし、チュートリアルを終えて、いざRailsを使って実際のWebアプリを開発しようとしてもチュートリアルレベルの知識だけでは思うように、そして効率的に開発することは難しいのではないでしょうか。また、既に開発が進んでいるRailsアプリのプロジェクトに途中から参加してプロダクトのコードを読んでみて、理解できない場面に遭遇することも少なくありません。

 より実践的なRailsアプリを開発する場合、既にOSS(オープンソース)として公開されている多くのgemを使用します。Railsプロジェクトで導入されているgem一つひとつの役割や使い所をちゃんと理解することで、より深くプロダクトのコードも理解することができます。Railsアプリを開発する上で、どんなgemがあるのかを知ることはRails開発初心者を脱するために重要な要素の1つです。

gemの分類

 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もくもく会などに積極的に参加して有識者にアドバイスをもらうと良いでしょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ユーザー認証機能の定番deviseの概要

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これだけは押さえておきたい! 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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 竹馬 力(チクバ ツトム)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10813 2018/05/15 17:59

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング