エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[スゴ腕の妙技 2/2] 「汎用フレームワークは遅すぎる」『ヒルカツ』開発者が独自フレームワークを作る理由

公開

 

 << [スゴ腕の妙技 1/2]  1サービス40時間でローンチ!『ヒルカツ』開発者が語る「超高速でWebサービスを生み続ける方法」

―― 一般的に、フレームワークを作るタイミングってどんな時なんでしょう?


山下 例えば会員数が何10万、何100万規模になったサイトや、マネタイズができているサービスなどを開発している会社が、長年の仕様変更によって汚くなってしまったソースをキレイに置き換える必要性に迫られたり、これまでのノウハウを活かして新サービスを作るっていうタイミングで行うのが一般的だと思います。

また、その場合でも、オリジナルフレームワークというよりは既存フレームワークの導入が多いように思います。目的は開発の効率化だったり、開発者間のスキルのバラつきを平準化するためだと思うんですが、僕らくらいの会社の規模でオリジナルのフレームワークを持っているって話は……。

小原 あまり聞いたことがないですね。

山下 僕らは2010年から今年にかけて7つのサービスをリリースしていますけど、そもそもベンチャーであれば一つのサービスをじっくり育てていくのが普通ですからね。

なので、事例としては特殊かもしれないですけど、少人数でたくさんのサービスを作るような場合にも、フレームワークの活用は有効だと思います。

汎用フレームワークは起動に数10秒。独自フレームワークなら5秒

――汎用フレームワークを使わなかった理由とは?


山下 汎用フレームワークだと、僕らには不要な機能が多くて使いづらいんですよ。

小原 何でもできる代わりにとても重い。

「」

「汎用フレームワークを使えば何でもできるけど、Webサービスにそこまで必要ない」(山下氏)

山下 小さいものもあるにはあるけど、僕らが作るのはだいたいソーシャル系のWebアプリがほとんどなんで、それ以外の機能は不要なんです。不要な機能が多くなれば、ビルドやアプリケーションの起動に時間も掛かります。

これは、なかなかサービスを止められないWebアプリという特性を考えると、デプロイが大変面倒だし、単純に開発上のストレスにもなる。Javaの大規模な汎用フレームワークだと、ビルドや起動に数10秒掛かっちゃうものもあったりします。

二人で『Comicab』を作った時は、まず最初に「汎用フレームワークはデカすぎるし使うのはよそう」というのを申し合わせたほどです。そのサービスがきっかけで、オリジナルのフレームワークができたというのも、妙な巡り合わせだとは思いますけど(笑)。

今、僕らの独自フレームワークは、MacBook Proのローカル環境でも5秒と掛からず起動しますよ。

小原
 確かに(笑)。いくつか前提条件があるにはありますけど、自分たちがやろうとしてることにフィットしてるって意味では、オリジナルの方が使い勝手が良いんです。

――そもそもサービスの企画から開発までの流れはどんな感じですか?

山下 僕は自分が不満に思ってることを解決するために作ることが多いので、一人でやるときは、思いついたら「まず作る」が基本ですね。

『Pictionary』

PC、スマホ、ガラケーおよび4カ国語に対応する『Pictionary』。このサービスは3日で作られた

小原 もし二人で開発するとしたら、軽く2~3時間アイデアを話し合ってすぐ作り始め、ある程度形になった時点で調整するという流れですね。以前リリースした『Pictionary』だと、面白い画像をアップするサイトで、ユーザー投票によって単語に合う写真を決める「見る」辞書というのがコンセプト。

それさえ理解できれば、あとはどんな画像登録機能や投票機能が適切なのかを判断して、実装していくだけですよね。機能自体は、ほかのサービスにもあるものだから特に悩むこともありません。

山下 エンジニアにとって何より悲しいのは、とにかく使われないものを作ることなんですよ。なので、開発に入ったら極力シンプルな形で実装することを心掛けるし、使われない可能性のある機能は必要性が分かるまで作らない。

そういうスタンスだからこそ、自分たちに最適化されたフレームワークの効果が最大限に発揮できるわけです。それに、技術的にチャレンジングなことをしたところで、ユーザーに使われなければ意味がないとも思っているので、新しい技術や難しい技術に固執することもありませんしね。

小原 お互い技術的に相当細かい部分で「ここの処理はどうしよう?」って話したりすることはありますが、基本的にはそういうことって、すぐになくてもいいものだったり、ユーザーにとって大きな問題ではなかったりするもの。「もし必要になったらその時考えよう」っていう結論になることが多いですね。

ニーズ次第でフレームワークは公開。もっと洗練させたい

――この独自フレームワークは、将来的に公開するようなことも考えてますか?

大きくなります「スゴ腕エンジニアの開発がやたらと早い6つの理由』※クリックすると拡大して表示されます

山下 考えてます。われながらよくできてるとは思うんですけど、今は二人だけでしか使っていませんからドキュメントもそろってないし、もしかしたらどこかにバグが隠れているかもしれません。

もし公開して、たくさんの人に使ってもらうことで洗練されるなら、それはそれでありなのかなと思っています。うちらはサービスが作りたいだけで、フレームワークを作りたいわけじゃないですから。

具体的な日程も内容もまだ決めてはいませんが、おそらく勉強会からスタートさせていくことになると思います。まずは参加者に使ってもらって、徐々に事例やドキュメントを増やしていき、どこかのタイミングでオープンソースとして一般に公開できたらいいですね。

小原 ただし、開発環境を含めて自分たちにとっての使い勝手のよさに特化しているので、普通のWeb向けのフレームワークと性格が違う面はあります。それでもよければ、ぜひ使ってもらいたいですね。もしこの記事で反響があったらすぐやりましょうよ。

山下
 そうだね。連絡があったら考えましょう。そもそも僕らはニーズのないことは一貫してやりませんから!

<<現在、オンザボードはエンジニア&デザイナーを熱烈募集中とのこと。興味がある方は同社のHPまで!>>

取材・文/武田敏則(グレタケ)、撮影/桜井 祐(編集部)

 1  |  2 

<< [スゴ腕の妙技 1/2]  1サービス40時間でローンチ!『ヒルカツ』開発者が語る「高速でサービスを生み続ける方法」