いまさらながらPHP Matsuriの最終レポートです。
自分のMatsuriはまだ終わっていません。小山です。
ハッカソンターゲット
さて、JIREI NIGHTも終わって自分が開発しようと思ったのが、「セルフドキュメントプラグイン」でした。
今までCakePHPプロジェクト自身の「DBスキーマを図で表すプラグイン」や「Gitコミットログを参照するプラグイン」を作ってきたのですが
(最近は「自身のViewファイルを表示するプラグイン」なども作りました)、どうやら「セルフ何とか」が好きみたいです。
基本は開発のサポートですね。
で、今回のターゲットですが、最近は案件で「マニュアルはHTMLでもいい。むしろHTMLのほうが使いやすい」と思うこともあって、「セルフマニュアル」になりました。
マニュアルといえば「説明文章」と「スナップショット」→説明文章なんてただのテキストだから面白くない→じゃあスナップショット→「システムでシステム自身のスナップショットを撮る」
というのが今回の実装ターゲットになりました。後のWiki機能なんてのは飾りです。
実装
「システムでシステムのスナップショットなんて撮れるのか」ということですが、サーバもPCです(自分のメイン開発機はUbuntuサーバです)。当然ブラウザだって動きます。「サーバ内でブラウザ動かせばなんとかなるでしょ」ということで、「CakePHPプラグイン内でブラウザを叩く」という方向性に決まりました。
ところがいろいろ調査をしているうちに面白い試みをしているプロジェクトをみつけたので、途中から「CakePHPプラグイン内にブラウザを内蔵する」に若干暴挙にみえる方向に転換をしました。(でも上のプロジェクトを見たらそうしたくなりますよね?ね?)
結果として、見事に「システムからシステムのスナップショットを撮る」ということに成功。
PHP Matsuriの動画にたまたま自分の開発時点のデモが写っていました(PHPMatsuriの動画まとめの2つ目の3:10頃)。
ユニットホスティング
さらにここからユニットホスティングにデモ環境を構築しました。
もともとは特徴的な利用の仕方はできないと思っていたので、ユニットホスティングを使う予定はなかったのですが、VMで作っていたものをデモとして見せにくいことに途中から気づいて、急遽構築を開始しました。
そんな「急遽」だったのですが、これがまた使いやすかったです。
サーバ環境構築まで本当にわずかな時間しか必要なく、さらにグローバルIPが付与することも可能。管理インタフェースも非常に使いやすい。
使ってみて、業務用途で即浮かんだのが「クライアントへのデモ」の際の一時的サーバでした。
そういう形で社内に浸透させて、将来的には一時的なサーバ追加などにの「クラウドらしい用途」など、夢が広がります。
そんなこんなでデモ環境ができたところで、だいたい寝たのが深夜5時過ぎでした。
結果とまとめ
LTのときの発表資料は以下です。
(※現在このManual Pluginはスナップショット機能だけを切り出してSnapshot Pluginとして機能を整備中ですが、近いうちにリリースできればなと思っています(誰得な機能ですがww))
結果、ユニットホスティング賞をいただきました!
投票してくださった皆さんありがとうございました!
PHPMatsuriで「開発者で集まって集中しての開発」というのは本当にいい経験でした。
確実に濃い時間が流れて、「精神と時の部屋」のような成長感がありました。
このMatsuriのアイデアを実現に導いたスタッフの方々には本当に脱帽です(自分は途中からの手伝い程度でした)。
また是非こんなイベントが開催されることを願っています。
本当にどうもありがとうございました!