Rails + Heroku で俺専用RSSリーダー作った
Posted: Updated:
Webアプリのリハビリ
ということで、Official Blog: A second spring of cleaningで告知された、Google Reader閉鎖に備え、俺専用RSSリーダーをRuby on Railsで軽めに作ってみた。
read.aho.mu
目的としてはRuby + Railsの学習と、サーバーサイドのリハビリのつもりだったのだけど、簡単すぎて実作業1日分くらいで終わってしまった..(´・ω・`)
自分で登録したフィードを、自分でなんとなく流し読みして、良いと思った記事に♡を付けられるだけなのですが、それがついでにオープンになっているだけ。
色々もにょもにょ
触ってみた箇所について所感など。
Heroku
前からScalaなりNodeなりでHello Worldまでは試してましたが、素直にRailsをデプロイして動くところまで手を入れたのは初。
無料で使えるアドオンを幾つか入れて試してみました。Schedulerは頻繁に使いそうで、使い勝手も良いですね。無料で10minごとに実行できたし十分。
Ruby on Rails
実はちゃんと触ったの初めて。てへ。簡単なことを簡単に実現するには、かなりお手軽だった印象。scaffoldとかmigrationとか改めて優秀な仕組みだなと思う次第。Active Recordについては、記述コードと生成されるSQLの関係にちょっと?な部分も残っていますが概ね良好。
あと、Viewのヘルパの豊富さというか、AjaxでAPI叩くにあたりlink_to 'Label', 'path/to', {:remote => true, :method => 'post'}
のような記述が用意されてるのは、かなり新鮮だった。hamlと合わせてよっぽどHTML書きたくないのね感。
他、入れてみたgemメモ。
flyerhzm/bullet : Active Recordの生成SQLに('A`)ウヘァってなって調べてたらN+1問題を自動検知するとか、ナイスなgemがあるとのことだったので導入。検知結果の表示もJavaScript consoleに流したり出来て便利だった。
gregbell/active_admin : 管理画面を生成して、モデルの一覧やら基本的なCRUD操作UIを自動生成してくれるgem。かなり脳汁がでた。スゴイネー。一般ユーザーもログイン操作があるようなケースでは、どうカスタマイズするのが良いのだろう?
pauldix/feedzirra
: これを使ったフィードのフェッチ処理をrake fetch_feed
で実行できるようにして、Heroku Schedulerに登録して定期取得するようにしている。あまりドキュメントが豊富な感じでもなかったけど、簡単に使えた。
amatsuda/kaminari : ページネーション用で、以前ナニカの機会でwill_paginateを試した覚えがあったものの、kaminariのほうがナウいらしいので入れてみた。とはいえ、ほぼデフォルトな感じのまま使っている。
アセットパイプラインを始めとして色々あったのでGruntを使うことも無かったし、RailsのRailsだけで完結する感マジすごい。
New Relic
最後にパフォーマンス監視用に試してみたかったNew Relicが、Herokuのアドオンとしてこれまた簡単に導入できるようだったので試してみた。詳しくは後述の参考URLにある情報を見てもらったほうがよさげ。
サーバーのレスポンスタイムや、クライアントのページロードタイムなど、裏と表の両面からパフォーマンスの状態をチェックできる優れもの。それぞれの処理時間の内訳(DBに時間かかってるとか、hamlの処理がどーとか)もちゃんと分かるし、ボトルネックを検証するのに便利そう。
今のところ初めてGoogle Analyticsを見たときのような、どこを設定してどう見たらよいのだろう感が残っているので、ちゃんと活きている運用サービスで見てみたいです。
参考
コードは ahomu/read.aho.mu で公開しています。以下は参考URL。
- Heroku
- パフォーマンス監視サービスのNew Relicが超便利な件 #Rails #heroku #AdventCalendar - Qiita
- Kaminariの使い方 Rails3時代のpaginationの標準候補 - memo.yomukaku.net
- [Rails 高速化] ページキャッシュとN+1対策 - 酒と泪とRubyとRailsと
- Railsの管理画面を最短時間で作ろう! active_admin[Gem] - 酒と泪とRubyとRailsと
- さいきんの Rails サービスを高速化をしてみた - 2nd life
- Rails + New Relic ならレスポンスタイム等のパフォーマンス監視が簡単にできるよ - 彼女からは、おいちゃんと呼ばれています
- rails の secret_token の扱い - QA@IT
- Murajun's Blog: Railsのsecret_tokenヘ(^o^)ノ
- [Heroku]タイムゾーンを設定する - func09
ほか、Railsの基本的な書き方などでStack Overflowにお世話になってたけど、読み飛ばしすぎてURL残ってなかった、、。次はScalaで何か作ってみようかしら。