dietcake とは

dietcake advent calendar 2014 の2日目です。今日は、dietcake というフレームワークについて簡単に説明したいと思います。

dietcake は、公式ページ にもあるように、以下のような特徴を持っています。

高速動作
1億PV/日のアクセスを前提に設計しています。数十万人を超えるアクティブユーザーに対して、数ミリ〜数十ミリ秒オーダーでレスポンスを返すために作られました。

低学習コスト
シンプルな構造と規約のため、PHP に関する基礎的な知識があればすぐに使い始めることができます。プロジェクトに参加したメンバーが価値のあるコードをコミットするまでの時間を短くできます。

自由にカスタマイズ
プロジェクトごとに必要な機能を組み合わせましょう。小さい部品を集めて全体を構成できるようになっているので、セッション、DB 抽象化レイヤー、HTML テンプレートなどはプロジェクトの要件にあわせて自由に選べます。

以上です。

……。

……もともとは、ソーシャルゲーム黎明期にガラケーからの大量アクセスに対応するために、軽量のフレームワークが必要になったため作られました。

サンプルとして公開している dietcake-hello や、devtool のようなプロダクトをみてもらうと分かるように、CakePHPのようなPHPのMVCフレームに多くあるディレクトリ構造で開発する事を想定しています。軽量フレームワークとフルスタックフレームワークの間のようなデザインになっています。

当時のフレームワークは、「フルスタック」と言われる一般的なアプリケーション開発に使われる周辺ライブラリを同梱した規模の大きなものが多く「アプリケーションを早く簡単に作る」事を重視しており、速度についての優先度が低い事が多かったり、SELECT LOCK IN SHARE MODE や SELECT FOR UPDATE のようなロックに関するサポートが弱かったり、ガラケーのソーシャルゲームに求められる認証の仕組みをフレームワークに組み込むのが困難なケースが多かったため、私はそれらの問題を解決するため dietcake を利用しはじめました。
近年ではソーシャルゲームにおけるPHPの役割も変わってきており、HTMLを直接生成するよりもAPIとしてJSONレスポンスを返す事が多くなってきていますが、そういった変化に対しても最低限のコアに対して肉付けをしていく仕組みによって、柔軟に対応する事ができています。

最近まで、コアだけをOSSとして公開していましたが、実際に使おうとした人たちから「どのように作っていくのかイメージしづらい」と言われ、一般的なアプリケーション開発に必要なテンプレートを使って即座にアプリケーション開発環境をつくれる spongecake という仕組みができました。明日は spongecake を使って実際に hello world する流れを紹介したいと思います。

投稿者: halt

PHPプログラマ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください