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

みずぴー日記

陽気なプログラマが世界を廻す

2年前にPadrinoで作ったサービスをRails4で書き直しました

f:id:mzp:20131231174259p:plain

先日のクリスマス前の連休に、熱海の温泉宿で開発合宿をやっていました。 そこで2年前のクリスマスにリリースしたQuoteItをPadrinoからRails4に書き直していました。

QuoteItとは

QuoteItはURLからいい感じの埋め込み用HTMLを生成するためのサービスです。 AsakusaSatelliteのURL展開機能のバックエンドとして動くように設計されています。

主な構成は以下の通りです。

  • フレームワーク: Padrino
  • DB: MongoDB
  • その他: URLから埋め込み用HTMLを生成するルールは wedata *1で定義されている

不満点と解決方法

しばらくは上記の構造のまま使っていましたが、2年くらいするといろいろと不満が溜ってきました。

  • 不要だと思ってたRailsの機能、意外と使いたいことが多い
  • 他のサービスRailsで書いてるのに、これだけPadrinoなのでメンテナンスが面倒
  • Mongoid使っていると、ActiveRecord前提のgemが使えなくてつらい
  • Ruby 2.1.0対応したい
  • wedataでデータの編集はやりづらい
  • そもそもwedataがよく落ちてる

というわけで合宿のあいだにがっつり書き直して、以下の通りの構成にしました。

  • フレームワーク: Rails4
  • DB: PostgreSQL
  • その他: URLから埋め込み用HTMLを生成するルールはローカルのJSONで定義する。 編集したい場合はpull requestを送る

感想

  • viewはほぼそのまま使いまわせたし、コードも大半が使いまわせたので、そんなに苦労しなかった
  • レールに乗ってる間はRailsのほうが圧倒的に楽なので、"Railsの○○という機能使わない"くらいならRailsを選択したほうがいい気がする。"邪魔になる"だったらPadorino/Sinatraのほうがいいかも
  • wedataさえ編集できればルールを追加できる自由度が楽しかったけど、まあしょうがない
  • 温泉宿で過ごすとクリスマス感がまったくない

関連リンク

*1:サービスのURLは http://wedata.net だが、2013-12-31時点で落ちているのでブログ記事へのリンクにしておく。