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で画像処理をするためのライブラリです。
◆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の書き方を学びたい!」という人はぜひのぞいてみてください。
冒頭で言ってたPythonのライブラリ紹介記事はこちら。
paiza.hatenablog.com
paizaでは、未経験者でも動画を通してプログラミング等が学べる「paizaラーニング」を公開しております。
paizaラーニングでは、paizaの人気美少女キャラクター霧島京子(cv:上間江望)が、かわいい声で優しく・楽しく・わかりやすくプログラミングを教えてくれます。「霧島京子による1本3分程度のレッスン動画」に加え、「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、初心者でも無理なくプログラミングを習得することができます。