読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

paiza(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

Rubyエンジニアがおすすめする、開発に役立つ超便利なgem15個

f:id:paiza:20170213174530j:plain
Photo by Daniel Morrison
中村です。

先日、弊社エンジニアがPythonの便利なライブラリをいくつかご紹介する記事を書きましたが(後でリンク貼りますね)、paizaのメイン言語はRubyなので、Pythonの次はRubyの便利なgemについても書こうと思います。

今回挙げるのは、Railsと組み合わせて実際にpaizaの開発に利用しているものばかりです。

「最近Rubyを使い始めたばかり」「自分もRubyでWebシステムの開発をしてみたい」という方の参考になればと思います。

Rubyを使い始めるとよく耳にする「gem」とは?

gem(じぇむ)とは、ざっくり簡単に言うと決まったフォーマットで作られたRuby用のライブラリで、フォーマットさえ守られていれば誰でも作って公開できます。(そのぶん品質に保証がないというのは注意点かもしれません)

今回紹介しているものも含め、登録されているgemは↓このようなコードを書くだけで使えるようになります。便利。

gem install library_name  #library_nameにはライブラリ名が入ります

■Webサイトへ機能追加をする際に便利系

RMagick

github.com
Rubyで画像処理をするためのライブラリです。paizaPOHもし女ではツイートなどが画像付きでシェアされるようになっているのですが、その際の画像はRMagickを使って作成しています。

過去のPOHやもし女について、詳しくはこちら↓
paiza.hatenablog.com

Paperclip

github.com
ファイルアップロード用のライブラリです。画像やファイルのアップロード管理、リサイズ画像の作成なんかに使っています。

SweetAlert

github.com
ちょっといいデザインのダイアログを表示してくれます。

Draper: View Models for Rails

github.com
Modelの内容を使って、画面表示したい時の処理を書く場合に使います。

Helperよりもメンテナンスしやすいのでよく使っています。ModelにView用のコードを書かなくても良くなるし、Modelと違って、デフォルトでHelperのメソッドを呼べるので便利です。

Ransack

github.com
複雑な検索を実現させたいときに。Ransackを使うと検索機能を簡単に作れます。

premailer-rails

github.com
HTMLメールを作る際にもCSSを使ってデザインを当てることができます。

ActionMailer単体ではインラインでスタイル指定をするしかなく、スタイルの共通化が難しいのですが、premailerのおかげでだいぶ楽になりました。

■開発環境が快適になる系

RuboCop

github.com
lintツールです。自分の書いたコードがコーディング規約に準拠しているかチェックしてくれます。

Guard::LiveReload

github.com
ViewとかCSSとかを変更すると、リアルタイムでブラウザがリロードしてくれます。レイアウト・スタイルの調整をするときにあると大変に便利です。

特にCSSは1ファイルのみ変更も検知・ロードしてくれるため、読み込み時間がかからなくてとっても素敵です。微修正の時に重宝しています。

Quiet Assets

github.com
開発中のログに、CSS・JS・画像の送信に関するものを表示させないようにしてくれます。他のログが埋もれてしまうので、このライブラリを使ってあえて表示しないようにするときがあります。

bullet

github.com
アクティブレコードにおけるN+1問題を検知してくれます。

■テストを書くときに便利系

factory_girl_rails

github.com
テスト用データの生成を簡単にできて、共通化も容易にできます。↓のFakerとセットで使っています。

faker

github.com
Fakerもテストの時に。ランダムに文字列を出してくれるので、特定のデータの時だけ通っちゃうみたいなパターンを予防できます。

timecop

github.com
テストの際、時間を止めたり好きな時間に進めたり……といったことができます。時間に関するテストをしたいときにかなり便利です。

■サービスの運用に欠かせない系

Exception Notification

github.com
エラーが起きた時に、チャットやメールにエラーの内容を通知してくれて便利です。

Whenever

github.com
crontab管理をしてくれるライブラリです。バッチのスケジュール管理に使っています。

■まとめ

割と安全性の高そうな定番やWebサービスのフロントエンド開発に使えそうなものを中心に紹介してきましたので、既に開発業務に携わっている人にはおなじみのものが多かったかもしれません。

逆に、読んでいて「gem?ライブラリ?って何ぞ……」といった初心者の方は、まずRubyのコードの書き方から学んでみるのがよいかと思います。

動画でプログラミングを学べるpaizaラーニングでは、プログラミング未経験者でも、Rubyをはじめとした多数の人気言語が学べる動画学習コースを公開しています。

「プログラミングの基礎から学びたい!」「Rubyの書き方を学びたい!」という人はぜひのぞいてみてください。

paiza.jp


冒頭で言ってたPythonのライブラリ紹介記事はこちら。
paiza.hatenablog.com




paizaでは、未経験者でも動画を通してプログラミング等が学べる「paizaラーニング」を公開しております。

paizaラーニングでは、paizaの人気美少女キャラクター霧島京子(cv:上間江望)が、かわいい声で優しく・楽しく・わかりやすくプログラミングを教えてくれます。「霧島京子による1本3分程度のレッスン動画」に加え、「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、初心者でも無理なくプログラミングを習得することができます。

paiza.jp

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編