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

ボクココ

サービス開発を成功させるまでの歩み

Heroku Dataclips だけで管理画面もどきを作ってる話

Heroku

ども、@kimihom です。

f:id:cevid_cpp:20160809214545j:plain

今回はみんな大好き Heroku の中の Heroku Postgres について。Heroku Postgres を使えば、データベースに関する操作をクラウド上で限りなく簡単にSQLコマンドを実行やデータの移行を行うことができる。

そして今回紹介する Heroku Dataclips を使えば、管理画面っぽいのを気軽に作成することができるので紹介しよう。

Heroku Dataclips とは

Heroku Dataclips とは Web 上で実行可能な SQL 文をまとめられるサービスのことだ。例えば、ユーザーのメールアドレスリストを抽出するリストを予め Dataclips として SQL 文を作っておけば、チームの他のメンバーは SQL を書かなくても Dataclips の URL を知っていれば簡単にユーザーリストを取ってくることができるようになる。もちろんその編集も Web 上で行えるので、何かちょっと条件を加えたいと言った時も専用の pg コマンドなどを打たなくても Web 上で編集が可能だ。つまり誰でも SQL 文の書き方を学べば、ブラウザ上で好きなようにデータをアクセスすることが可能になる。

Heroku Dataclips で管理情報の取得

Heroku Dataclips のおかげで、わざわざ情報表示のために専用の Gem を入れたり管理画面を作っていたような煩わしさからは解放される。Heroku アカウントを持っていれば、ここにアクセスできるかと思う。

私の場合は、何かシステムトラブルが起きた時などでユーザーのメールアドレスを拾って情報をすぐに提供できるように、Dataclips にSQL処理をまとめている。Heroku にログインさえすれば、エンジニアじゃなくてもユーザーの最新情報を取得できるようにした。今までは Rails の rake タスクを heroku run コマンドで実行していたが、こっちならリンククリックで一発だ!

f:id:cevid_cpp:20160809220303p:plain

他にも、参照系だけで済む管理画面の場合は積極的に Dataclips に書き出すようにしよう。Dataclips が増えれば増えるほどサービス関係者は情報を容易に取得できるようになる。みんなが SQL を学べば、誰でも欲しい情報をいつでも取ってこれるような環境を実現することだってできる。

ところでRails で書くと 複雑に入り組んだ長い SQL を書くなんてことはあまりしなくなるのだけども、生 SQL は頑張って出力したい結果が出せた時の喜びがあって良い。パズルみたいに組み合わせて作り上げられるのが SQL の面白いところだよね。

ちなみに作った Dataclips の URL の末尾に .json の拡張子をつけるだけで、JSONの結果を返すこともできる。API のモック用のレスポンスとしての使い方を想定しているみたいだけど、そんなのやるくらいだったらちゃんと API のコードを書いてからやればいいだけだと思うので、個人的にはあまり利用しないかなといったところ。

Dataclips の注意点

注意点として、 Free と Hobby プランの Heroku Postgres にはユーザー認可の仕組みがないので、URLを知っている人なら誰でもアクセスできてしまう点がある。なので機密情報を Dataclips としてまとめたいなら、 Standard 以上のプランに上げる必要がある。$50 にすれば Hobby に比べて一気にできることが増えるので、それなりのサービスを運営しているなら早めに Standard に上げるべきである。

終わりに

管理画面の作成に時間をかけるくらいだったら、ユーザーの価値あるものの開発に時間を注ごう! 管理画面は Dataclips などの ツールを駆使していかに手軽に早く欲しい情報をゲットできるかの勝負だ。そこに HTML や CSS などで調整するなんてことはそもそも必要ないはずだ。更新処理などもできるだけ rake タスクなどで自動化し、コマンド一発で更新できるようにしよう。

てことでこの後やるべきことは、 Heroku Postgres を使っているなら早めに Standard に上げて、Dataclips をどんどん作っていくってことだ。