はじめに
突然ですが皆さん!
Gemfieってどんな感じで書いてますか??
プロジェクトによって様々だと思いますが、僕の経験上あまり整備されてない事も多くないファイルかなと思います![]()
なので今回は僕が個人開発する際のGemfileの書き方をまとめてみようと思ったので、
特に勉強中の方や駆け出しの方に参考にしていただければと思いマンモス![]()
こんな書き方もあるんだ、へぇーくらいでみてもらえればと思います!
2つのポイント
1.環境や役割ごとに見やすくする
Gemは特定の環境のみで使用する事があります。
group :development do
# 入れるGem
end
group :development, :test do
# 入れるGem
end
実際こんな感じで書かれてるんじゃないかなと思います。
これぐらいシンプルだとそこまで問題ないのですが、Gemが増えてくると結構見にくくなってきます![]()
そこで僕なりに見やすく書いて見ると
# ==========================================================
# 開発環境とテスト環境
# ==========================================================
group :development, :test do
# 入れるGem
end
# ==========================================================
# 開発環境のみ
# ==========================================================
group :development do
# 入れるGem
end
このように
# ==========================================================
# グループ名
# ==========================================================
でまとめてやると見やすくなります!
環境以外にも僕は
# ==========================================================
# デフォルトで入ってたもの
# ==========================================================
# ==========================================================
# 認証系
# ==========================================================
# ==========================================================
# 検索系
# ==========================================================
など、Gemの種類などでもグループ分けしています!
Gemをただ羅列して書くよりは上記のように書いてあげることによって、グッと見やすくなるかと思います![]()
情報を書く
例えば、認証系のdeviseというGemを導入するとしましょう。
その際に単純に
gem "devise"
とするだけではなんのGemか分かりづらいですよね??
僕がGemを入れる際には以下の感じで情報をコメントで書いています![]()
# ==========================================================
# 認証系
# ==========================================================
# GitHub https://github.com/heartcombo/devise
# RubyGems https://rubygems.org/gems/devise/versions/3.5.1?locale=ja
# 参考記事 あれば書く
gem "devise" # ログイン認証機能(軽く説明を書く)
GitHubのURLとRubyGemsのURLはどちらかでも良いとは思います!
個人的には
- 公式ドキュメントの情報を書く
- 導入や設定の際に見た参考記事を残しておく
- ぱっと見でなんとなくなんのGemか分かるようなメモを残しておく
を意識しています![]()
行数増えるの嫌な方もいると思いますが、僕は時間が経つと結構どんなGemなのかとか、なんで入れたんだろう的な事が多々起こるのでコメントを残しておく派です。
まとめ
適当に追加してたり、ただ羅列して書くだけの人が割と多い印象だったので、今回僕なりのGemfileの書き方を紹介しました![]()
ControllerやModelと違ってコメントの量によってコードの可読性が下がると言ったデメリットが少ない、むしろちゃんとコメント残しておいた方が良いファイルだと僕は思います。
良ければぜひ参考にしてもらって、個人開発やプロジェクトで取り入れてもらえれば嬉しいです![]()