この記事はRuby on Rails Advent Calendar 2017 17日目の記事です。
はじめに
今回初めて ruby on railsのアドベントカレンダーに参加させていただきます。
稚拙な内容などはご了承ください。
また今回検証するためにソースコードを一部お借りさせていただきました。
Ruby on Rails Advent Calendar 2017 | 4日目 「先人達から学ぶRailsのテーブル設計」- kikunantoka
検証対象 OSS
- ekremkaraca/awesome-railsにあるレポジトリー92種類を対象としています。
注意事項
- 古いレポジトリーなども含まれているため、Gemの取り扱いの際はご自身で一度確認することをおすすめします。
方法
- 記事を参考にレポジトリーからGemfileを抽出し、データベースに保存。
- 各カテゴリー別に分けて使用されているGemもしくは、使用されていたGemを調べております。
結果
rails version
| rails version | number_of_gems |
|---|---|
| rails4系 | 45 |
| rails5系 | 28 |
| rails3系 | 10 |
アカウント作成
| gem | number_of_gems |
|---|---|
| devise | 46 |
| sorcery | 2 |
DB周辺
| gem | number_of_gems |
|---|---|
| pg | 57 |
| mysql | 27 |
| sqlite3 | 20 |
キャッシュサーバー
| gem | number_of_gems |
|---|---|
| redis | 8 |
ページネーション
| gem | number_of_gems |
|---|---|
| kaminari | 26 |
| will_paginate | 24 |
画像
| gem | number_of_gems |
|---|---|
| paperclip | 26 |
| carrierwave | 24 |
| mini_magick | 18 |
| rmagick | 8 |
テンプレートエンジン
| gem | number_of_gems |
|---|---|
| haml | 21 |
| haml-rails | 16 |
| slim-rails | 6 |
| slim | 5 |
デバッグ
| gem | number_of_gems |
|---|---|
| better_errors | 32 |
| binding_of_caller | 31 |
権限
| gem | number_of_gems |
|---|---|
| pundit | 8 |
| cancan | 7 |
oauth系
| gem | number_of_gems |
|---|---|
| omniauth | 23 |
| omniauth-facebook | 16 |
| omniauth-google-oauth2 | 12 |
| omniauth-github | 10 |
decorator
| gem | number_of_gems |
|---|---|
| draper | 8 |
テスト
| gem | number_of_gems |
|---|---|
| rspec-rails | 50 |
| minitest | 14 |
テスト効率化促進
| gem | number_of_gems |
|---|---|
| database_cleaner | 38 |
| webmock | 31 |
| faker | 29 |
| launchy | 29 |
| simple_cov | 27 |
| timecop | 27 |
| shoulda-matchers | 22 |
| guard-rspec | 18 |
| coveralls | 16 |
| rails-controller-testing | 16 |
| email_spec | 13 |
| spork | 6 |
| ffaker | 6 |
| rspec-its | 6 |
エラートラッキング系
| gem | number_of_gems |
|---|---|
| newrelic_rpm | 28 |
| airbrake | 10 |
| sentry-raven | 6 |
| honeybadger | 5 |
| bugsnag | 3 |
アプリケーションサーバー
| gem | number_of_gems |
|---|---|
| unicorn | 25 |
| thin | 25 |
ジョブキュー処理
| gem | number_of_gems |
|---|---|
| sidekiq | 17 |
| delayed_job | 7 |
| resque | 3 |
論理削除
| gem | number_of_gems |
|---|---|
| paranoia | 5 |
開発効率促進
| gem | number_of_gems |
|---|---|
| rubocop | 24 |
| annotate | 17 |
| bullet | 16 |
| letter_opener | 15 |
| rack-mini-profiler | 11 |
| brakeman | 8 |
| rails-erd | 7 |
全集計結果を載せております。
https://github.com/zorori777/research_gems/blob/develop/results/result_gem.md
最後に
Gemは知っているか、知らないかの世界です。
年を重ねれば重ねるほど、成熟し完成されるGemもあれば
新しい風を吹かす画期的なGemも今後できるかもしれません。
Gemと共に素敵なエンジニアライフを送っていきましょう!!