@IT編集部の西村賢がRuby/Rails関連を中心に書いています。

サービスの時代が来た! と思ったサービス「Copycopter」

»

 こんにちは、@IT編集部の西村です。画面の前で思わず「サービスの時代が来た!」と叫びそうになったサービスが登場しました。Ruby関連で有名なThoughtbot社の「Copycopter」(コピーコプター)です。


Copy01_2

 Copycopterは、ヒトコトでいえば、Webサイト(Webアプリ)で使われている各種文字列(コピー)のリソースを、そのアプリの外側にあるCopycopterのWeb UIを使って編集できるようにするだけのものです。Railsに元々あるi18nのAPIを流用することで、プロダクション環境のコードに変更を加えることなくダイナミックにWebサイトに反映できる「gemライブラリ+サービス」のサービスです。Railsであれば、gemを入れて初期化時にAPIキーを設定すれば、後はビューの中でメッセージを国際化するのと同様に「t」メソッドを呼ぶだけのようです。

(Gemfileに追加)
gem "copycopter_client"
(初期化でAPIキーを設定)
CopycopterClient.configure do |config|
config.api_key = "81caded18444fc3b60e56622f927bcce"
end
(ビューでは国際化APIで文字列をリソース名で呼び出し)
<%= link_to t(".sign_up", :default => "Sign Up") %>

 Copycopterのサービスをアナウンスするブログのストーリーが冴えています。

開発者:はい、サインアップページはできましたよ。「サインアップ」をクリックするだけです。

クライアント:いい感じですね。でも「今すぐサインアップ」に変えてもらえます?

 ここで開発者はテキストを変更し、もしかしたらCucumberのシナリオも修正する必要があるかもしれません。で、ステージングサーバにデプロイして……、となるわけですが、これには続きがあります。

開発者:はい、「今すぐサインアップ」にしました。

クライアント:でもね、やっぱり元に戻すべきだと思うんですよ。

 そして、さらに1カ月後に……。

開発者:よしっ、サインアップページはプロダクション環境にデプロイできましたよ。

クライアント:そういえばサインアップといえば、何人かの人と話をして、やっぱり「今すぐサインアップ」とするのが結局いいのかなって思うようになったんですよね。

 私はコピー(文字列)をああでもないこうでもないと考える側なので、クライアントの気持ちはよく分かります。雑誌編集者時代には何度も何度も修正して、ページのレイアウト担当に「最終的に決まったものを教えてください!」とよくムッとされたものです。最終的に印刷されたページを見てみないと、分からないことってあるんですよね……。

 こうした修正作業は、それ自体は単純でも、五月雨式に修正依頼が来たり、「結局、元のままかよ!」と手戻り感があったりすると、「もう自分でやれっ!」と言いたくなりますよね、きっと。同様に、開発者の方々も、そういう気持ちになるんじゃないかと想像しています。開発者にしてみれば、文字列リソースなんか周辺視野にかろうじて入っているぐらいで、本質的ではないのだからとThoughbotの人もブログに書いています。でも、Webサイトを作る側にしてみれば、メッセージの言葉選びはとても重要です。恐縮しながら修正依頼をするのではなく、納得がいくまで自分でいじっていたいものでしょう。それを可能にするのがCopycopterでしょう。以下の画面は編集向けUIと、それが反映されたWebアプリの結果です。

Copy03_3

 Copycopterのクライアントは300秒置きにサーバをポーリングしていて、変更があればローカルのリソースファイル(YAML)を更新するだけのようです。クライアント側もWeb側も、特別すごいハックという感じではないでしょう。でも、これって、世界中で同じ小さな問題を抱えているプロジェクトがあって、それを解決する今風のアプローチで、歓迎されるのじゃないかと思います。それを月額9ドル(3プロジェクト、4ユーザーまで)から月額49ドル(30プロジェクト、60ユーザーまで)で打ち出して来る、というところに個人的には新しい潮流を感じます。お客さんに対価をいただけるのは技術や実装というよりも、それによってどんな問題が解決するかということだ、というのが、よりハッキリ示されているように思うからです。そして、これまでプロジェクト単位だった「サービス=対価」の粒度が下がってきているということかと思います。以下、価格表です。

Copy02_2


 Copycopterが解決する問題は、自分たちでも解決できるものかもしれませんし、利用すべきソフトウェアもオープンソースでそろうでしょう。Herokuを使えば無償プランで十分でしょう。でも、実装のリードタイムやコスト、運用の手間を考えたら、こうしたサービスを選ぶ方が合理的というケースも多いのではないでしょうか。可用性の上がったサーバ(ネット)によって水平分業しているといってもいいかもしれません。誰もが同じ実装やインテグレーションを繰り返すのはムダです。gemだけ出して、「サーバの方は各自お好きにどうぞ」というのでは、世界中で同じ単調作業が発生します。

 KVSやNoSQLなどのストレージ技術が顕著ですが、ミドルウェアをどう使っていくかというときに、同一データセンター内でサービスとして提供・利用するという「Middleware as a Service」というべきもの(スミマセン、またXaaS用語を勝手に作っちゃいました)が注目ですよね。HerokuのアドオンやAWSの各種サービスですね。さらに、パフォーマンスがボトルネックとならないような、cronサービス、captcha代行サービスなどは、ふつうのWeb APIサービスとしていろいろ登場しています。gem+サービスで開発者の「かゆいところをかいてあげる」ような有料サービスは、まだまだ開拓すべきフロンティアがあるのかもしれません。

Comment(0)

コメント

コメントを投稿する