肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

PHP Framework Fight! 続報1

PHPフレームワークファイト終了のお知らせ - 肉とご飯と甘いもの @ sotarok


【告知】PHP Framework Fight! (仮)開催告知 - 肉とご飯と甘いもの @ sotarokの続報。

お待たせしてすみません。
そしてご意見を色々な方向からいただいて、嬉しくおもっています。そして色々迷っている間に、かなり大掛かりなイベントになってきてガクブルしていますw


もう少し、具体的にどう進めるのかを連絡します。

仕様

仕様は、それぞれのフレームワークで実装がばらけそうな部分や、こういう機能の実装実際に見てみたいよね、という観点で、大方決めました。
まだURLやDBの詳細なところは決めていませんが、頭に入れておいてもらえると助かります。それから、仕様のすべてをベンチマークに含めることはしていません。
つまり、ベンチマークの結果としてみる部分と、ソースの内容を見る部分、2つの意味で実装比較をしたいということです。

  • 登録
    • メール送信処理が入ります。認証キーを送って、URLクリックで登録完了。
  • ログイン
  • プロフィールの編集
    • 画像のアップロード・サイズ変更等
  • ポスト
    • AjaxでPOSTしてもらいます。JavaScriptのライブラリの使用は自由。結果はTwitterと同じようにほわーんと表示。(ベンチとるときは、Post用URL&データを直接叩きますw)
  • Follow / Remove
  • Reply機能
    • @ユーザ名 でReply扱い
  • 一覧
    • Followerの発言一覧
    • ユーザの発言一覧
    • Replies一覧
    • Public Timeline(登録者全員)の発言一覧
  • 一覧のページャ(必須ではないですが、あると良いかも。)
  • RSS
    • Public Timelineの発言をRSSで出力
  • ログアウト

画面遷移自体はそれほど多くないはずですが、一通り機能があるのではないでしょうか。
Ajaxやアップロード画像の扱い、RSSなど、フレームワーク間でかなり特徴が出そうだなーという気はしています。

余談:アプリ名

名づけて、ぷいったー(phwittr)。安直すぎ。でもま、これで行きます。w

  • phwiは、ふぃ じゃなくて ぷぃ。ふぃったーじゃ語呂が悪いから。。
  • tterじゃなくてttrなところがポイント(Flickr的な意味で

ベンチマークについて

実際のテスト計画の話になりますが、以下のような形にしたいと思います。
初期状態として、一定数のユーザが登録済みとします。

  • トップページ
  • ログイン
  • (繰り返し)
    • POST
    • 閲覧(Replies・Public Timeline)
  • ログアウト

これの繰り返しを計測します。
具体的にどういう風に計測するかは、テスト機が決まった時点で報告します。

ちなみに、フレームワークごとの、キャッシュ機能だとか、そういうのはフルに活用してもらってかまいません。ただし、キャッシュさせまくったせいでPOSTしたのに反映されないとか、そういう問題は発生させないようにw

開発規模(検討中)

開発工数も図りたい、ということで、ジェネレータ・ライブラリ以外の、自分で書いたコードの行数を計測したいと思います。
ただし、1行のズレもなく測れ、ということは言いません。およそでOKです。

で、自分で書いたコードの定義ですが、ライブラリやプラグインとして公開されており、誰でもダウンロード・インストールをすれば使える状態にあるものを利用する場合、それは自分で書いたコードに含めなくてOKとします。それが例え自分が作って公開したライブラリ・プラグインであっても、です。
つまり、自分が過去にそのフレームワークで作った何かしらのアプリのソースからの流用(自分の過去の財産w)を使う場合、それは、例えコピペであっても、自分で書いたコードとしてカウントします。

果たして行数で良いものか・・・という感じもありますので、ここはまだ検討段階としています。(自分で書いたコードの定義は、上記のとおりで決定)

開発について

開発は、1つ、リポジトリを立てることにしました。
また、リポジトリの場所ですが、アシアル株式会社に貸していただけることになりました。URL等は決まり次第ここで連絡します。

開発過程

したがって、開発過程はオープンになります。
すべての開発者が1つのリポジトリの中に、例えば

  • /
    • CakePHP1.2/
    • CakePHP1.1/
    • symfony1.0/
    • ...

などとディレクトリを作り、その中にソースコードを置いていもらう形とします。
アカウントは、実装立候補者にのみ発行します。

メインメンテナとアドバイザ

募集してきたとおり、フレームワーク:実装者 は1対1の関係であるものとします。しかし、上述のとおり、ソースコードは常に公開状態とします。したがって、周りからの口出しやそれらのアドバイスに基づく改善は自由とします。ただし、あくまで実装に立候補してくださった実装者の思想を優先してくださいw
そこらへんは、ツッコミを入れる皆様も適時空気を読んでくださるとを期待しています。
ツッコミを入れる場所も用意しようかと思います。trac上のwikiで済むならそれでも良いと思っていますが、もっとこういうの使ったらいいんじゃねー?というのがあれば、教えてください。
もちろん、それぞれのフレームワークのコミュニティ内で相談することも自由とします。

ソースコードのライセンス

上記のとおり、常に公開していくこともありますし、今後も残し続けたいという意図があります。
あまりしられていないフレームワークも多くありますので、よき実装サンプルとして残したいという思惑があります。
そういうわけで、基本的にはソースコードLGPLで公開したいと思っています。

実装期間

実装期間は、仕様が決まり次第〜6月中旬あたりで考えています。当初5月中というつもりでしたが、さすがに、1ヶ月はツラいかもーという意見もありますのでw
で、まぁ私もテスト機も無限にあるわけではないので、完成したものからテストを取り始めるつもりですので、「あああ自分だけ完成遅れてるう」とか思わなくても大丈夫ですw
目安として、6月中旬くらいまでに、すべての実装者のものが揃えば良いなーと思っています。

結果の公開

このイベントで実装されたスクリプトおよびテスト結果等のすべてのデータは、今後色々な場所で公開・発行・発表等しても良いことを了承してください。
私の思惑としては、PHP勉強会とか、その他もろもろ(わら の場で、結果を発表したいなーと考えている節がありますのでw

キャンセルについて

実装立候補したけど、やめたーという場合は、それはそれでOKです。>< コメントでもメールでもなんでもしてください。

後援とお礼

リポジトリサーバの場所・マシンを提供してくださることになった、アシアル株式会社には感謝感謝です。
そして、実装者として名乗りを上げてくださった皆様、色々ご意見をくださった皆様も、ありがとうございます。
個人的に相談に色々載ってくれてる皆様も、ありがとうございますw

足りないことがあれば

随時追記します><