megamouthの葬列

長い旅路の終わり

今すぐ「サイバーエージェント公式エンジニアブログ」を購読すべき10の理由

年収100万以下の底辺フリーランスWebエンジニアの僕は、いかに自分が糞虫で、社会の害悪でしかないかを日々自覚するために、すばらしいエンジニアたちのブログに目を通すことが多いのですが、最近読んだ「サイバーエージェント公式エンジニアブログ」のエントリがあまりにもすごかったのでご紹介したいと思います。

それがこちら↓

大ヒットWebサービスを作る!!
http://ameblo.jp/principia-ca/entry-10765771198.html

理由その1 モチベーションツリーがすごい

モチベーションツリーというのは私は存じ上げていなかったのですが、そこは時代の最先端を走るサイバーエージェントのエンジニア。僕みたいなクズにもわかりやすく教えてくれます。

こちらは主にモバイルゲームの企画時に使われている「技術」で、
ゲームの軸となる以下の3点

・ゲーム内のユーザーの「目的」
・目的を達成するために変動する「パラメータ」
・ユーザーが実際に行う「アクション」

をそれぞれつないで可視化したものです。

で、それで描かれたのがこれ

http://ameblo.jp/principia-ca/image-10765771198-10978127662.html

どうですか?このゲームで実質できることが、「練習」と「バトル」と「回復アイテム」しかなくて、技パラメーターがどうバトルに影響するのか、とかそういう細かいところは一切不明なのに、全てが「最強のレスラーを育てる」というモチベーションを喚起するのだという虫のよい冷徹な現状認識まで、全てをこんなシンプルな図で表せていることに驚嘆しませんか?。

 僕も早速、MSXで発売された初代信長の野望のモチベーションツリーを書こうと思ったんですが、正確に記述しているつもりなのに、いつの間にか図がどんどん大きくなってしまい四畳半一間の僕の家からはみ出てしまったので、諦めました。「1984年に半素人が作ったゲームより複雑なゲームなんて作れない不要」という強い意志に「あなたが見ている未来を僕にも見せてください!」と土下座でお願いする勢いです。

理由その2 ユーザーのニーズつかみすぎ

このレスラーゲームのシンプルさを見ていると、携帯ユーザーってのは複雑になる一方の昨今のゲームにもう飽き飽きしていて、「お手玉」とか「かくれんぼ」とかそういうシンプルなゲームに親しみを感じるような人たちなんでしょうね。藤原正彦先生、日本は変わりましたよ!

しかもこのユーザーは、こんな作業ゲーシンプルなゲームに惜しげもなくお金をつぎこんでしまうらしいです。大手ゲーム会社ですら掴んでない消費者ニーズをしっかり妄想把握してしまう、サイバーエージェントのリサーチ能力、さすがです。

理由その3 戦略カレンダーがすごい

引用するのが面倒なので、平たく言うと、

・日々の売り上げ
・新アイテムによるスポット的な売り上げ

を分けて記述するカレンダーです。
僕は大学中退のゴミクズなのでわからないのですが、ハーバードビジネススクールMBAをとった人によると固定費と変動費を分けて記述できる「家計簿」っていうツールがあるらしいです。このカレンダーはまさにMBAクラスのそれなわけです!こんな発想ができるAmebaゼネラルマネージャーの高橋さん、まじで尊敬しちゃいます!

これによって、「今月の売り上げペースが悪いなあ」と思ったら「あら、今月の食費が足りないわ」と主婦がサラ金に駆け込む感覚ですぐに課金アイテムを新たに発売するなどの施策をとることができるんです!まさに「行き当たりばったりスピードこそ命」

理由その4 開発スピード速すぎ

それにしても、そんな場当たり的に臨機応変に新アイテムを発売することができるなんてすごい開発スピードですよね!
グリーの釣りゲーで売ってる3000円の釣り竿とか、価格を考えたら10人月はかかってる筈ですよ・・・
それが一瞬でできちゃうサイバーエージェントすごすぎ

理由その5 IndexPersistがすごい

弊社の執行役員主席エンジニアの名村により開発された、既存のデータベースをkey-value型のデータベースとして扱うJavaフレームワークです。

key valueストア(memcached)のヘビーユーザーであるmixiなんかは速度が求められる処理をRDBMSからkey valueストアに置き換えるなんていうチューニングをしているらしいですが、サイバーエージェントさんは逆!構造が単純だから高速に動作できる筈のkey valueストアを遅いMySQLに放り込んでしまうんです。この発想はなかった!

僕みたいなクソ虫はその意味すらわからなかったのですが、以下のメリットがあるらしいです。

SQL文を書く必要がない

SQLなんてクソ言語覚える時間もったいないですもんね!key valueストアならハッシュとか連想配列と同じ感覚で使えちゃうから開発スピード 爆 速です。
そもそもSQLは、帳票とかデータ処理における車輪の再発明を避けるっていうセコい目的で考えられたスキームですから、これは要するに「車輪の使い方を覚えるより車輪の再発明をしたほうが早い」という並のエンジニアでは一生達することができない境地に達しているってことです。やばい震えが止まらない・・・

きっと「内部結合したいんだけど、ブヒブヒ」とか、「IDじゃなくてプロパティ値で検索したいんだけど、モモーイ」とか言うようなキモくて怠惰な不良資産エンジニアどもはサイバーエージェントには一人もいないんでしょう。さすが勝ち組企業!

オンラインでのカラム追加が可能

RDBMSだとスキーマ変更一つするにも、チーム全員と情報を共有しないといけないので大変ですが、オブジェクトをシリアライズして放り込むこのフレームワークなら、誰でもいつでもスキーマ変え放題!

サイバーエージェントの技術力にかかれば同じテーブルにスキーマの異なるオブジェクトが混在してる状態ができようが、正規化してないのにデータベースの整合性を保つことなんて息吸う程度の作業なんでしょう。なにこの人、かっこいい・・//

キャッシュが楽

memcachedがそのまま使えちゃう!楽チン!
例えばこれがMySQLのQueryCacheだと設定ファイルに一行もの記述をしないといけませんし、キャッシュの有効期限も自動で管理されちゃって、サイバーエージェントのような天才集団には物足りない。
10文字ほどキータイプするよりキャッシュメカニズムの再発明をしたほうが早いと言い切ってしまう逆転の合理化精神に僕の股間はびしょびしょです




以上です。
どうでしたか?なにがすごいって、こんな革命的な情報を惜しげもなく、全世界に向けて公開しちゃうところですよ。こんなすごいブログ他にないですよね。皆さんも是非RSSリーダーサイバーエージェント公式エンジニアブログを加えてください。本当に愉快な毎日が送れますよ!