Author Archive

    はてなブックマーク - PHPMatsuriはFusicのプラスになったのか?(4/4)
    このエントリーをはてなブックマークに追加

    どうやら最終区担当の小山です。

    FusicのPHPMatsuri2011 レポートも最後です。何やらハードルが上がっているように見えますが、そこはスルー力を発揮します。

    PHPMatsuriリレーブログで「FusicがPHPMatsuriに参加すべき意義」というエントリーを書きましたが、「実際はどうだったのか?」について考えてみたいと思います。

    PHPMatsuri前

    前のエントリーはどちらかというと自分個人の考えが強かったのですが、あるとき弊社社長からこんなメールが社内に送信されました。

    “今、気付いたけど、小山君がいいこと書いてました。

    blog.fusic.co.jp/archives/1869

    PHP Matsuri に参加する方々、ぜひ何かを感じて
    帰って来て下さい。”

    会社としても4人を送り込むわけですから、期待しないわけにはいかないです。
    ただ、この時点では4人ともそこまで意気込んではいなかったのではないでしょうか。

    はたしてPHPMatsuriで何を感じたのか

    「PHPMatsuriで何かを感じることができたのか」

    それは今までの3回のエントリーを見ていただければ一目瞭然でしょう。

    傍から見ていても違いが分かるほどです。

    例えば、先日CakePHP2.0のリリースがありましたが(おめでたい!)、
    今まで以上に社内で話題になっているように感じました。
    CakePHP界隈の人の話題もでるようになりました。

    では、「具体的に何が変わったのか」、自分なりに分析してみたいと思います。

    会社の外をより意識するようになった

    PHPMatsuriをはじめとして勉強会やカンファレンスで、最も良い効果のひとつがこれだと思います。
    さらにPHPMatsuriはハカソンイベントです。

    会社の外の人と同じ環境で開発できる

    これができるイベントはなかなかありません。
    ネットを通じて一つのプログラムを開発するのもかなりエキサイティングな体験ですが、
    実際に同じ場所で、いつもと違った人と一緒に開発するのはさらに刺激的です。

    ちなみにこの体験はかなり中毒性があるらしく、PHPMatsuriにリピータが多いことからもそれが証明されているのではないでしょうか。

    ライブラリを「使う」意識から「作る」意識により傾いた

    何かのシステムを作るとき、目指す目標は「システムを完成させること」です。
    ただ、その目の前の目標だけを追っていたら毎回同じように苦労するでしょう。

    「システムを完成させること」と同時に
    「次のシステムでも使えるような機能に」「いつか別のシステムでも使えるような機能に」
    「どこかの誰かが使えるような機能に」
    という意識を持つことで、次のシステムを作るとき楽になるかもしれませんし、
    そういう意識を持つことが結果的にソースコードが綺麗になることにつながります。

    なかなか日々の業務に追われていたら変えたい意識もなかなか変わることはできませんが、
    PHPMatsuriではフレームワークの開発者やライブラリの開発者が一堂に会しています。
    その人たちの考えに少しでも触れることができます。
    むしろ触れずにはいられない環境です。

    さらに「次の日のLT大会」のための、業務でない「何かを」作ります。
    多分PHPMatsuriに行く前の、開発ネタを考えるときから何かを得られたのではないでしょうか。

    プログラムの世界を楽しめた

    何で括ればいいか良い言葉を思いつきませんでしたが、
    PHPMatsuriはPHPやJavaScriptをはじめとした「プログラムを通じて楽しむ環境」だったように思います。
    プログラムの世界を楽しむことができれば、
    35年定年説なんて関係ないでしょうし、日々の仕事も楽しくなることうけあいです。

    PHPMatsuriに行くことを決めた時点でいつも楽しめているんでしょうが、
    PHPMatsuriに参加したことで、いろんな人と交流ができて、さらに楽しむ術を覚えたように思います。
    この楽しみがもっと増えればいいなと思っています。

    結論

    当初のもくろみ以上にPHPMatsuriはFusicのプラスになった

    4人がそれぞれ精一杯過ごせたと思います。
    フレームワークのコアデベロッパに相談したり(貴重!)、
    ハッカー精神よろしくアグレッシブすぎるものを開発したり、
    会社の外の人とはじめて一緒に開発する環境を体験したり、
    さらには全員が最後に成果を発表できて、
    確実にプラスになっています。

    PHPMatsuri青年団の皆様、この場を借りて御礼をいいたいと思います。

    本当にありがとうございました!

    来年

    来年のことを言うと鬼が笑うので、あまり考えないようにしていますが、
    来年もPHPMatsuriが開催されて欲しいと思っています。
    ただ、PHPMatsuriを開催するのに多大な労力がかかっていることも知っています。

    もし来年PHPMatsuriが開催されるなら、
    そのための協力はできる限りしていきたいなと思っています。

    ちなみに

    自分は今年はこんなものを作成していました。
    ハッカー賞次点をいただきました!ありがとうございます!

    何が一番面倒かって仕様が複雑すぎで実装に先が見えないことです。

      はてなブックマーク - FusicがPHPMatsuriに参加する意義
      このエントリーをはてなブックマークに追加

      最近10月14日が楽しみな小山です。

      @kunitさんのエントリー「受け身ではなく手を動かすイベントの楽しさ」からバトンを受けて、エントリーを書きたいと思います。

      PHPMatsuri2011が開催されます

      今年も10月14日15日にPHPMatsuriが開催されます。

      Fusicも去年に引き続きスポンサーとして参加させていただきます。
      また、今年は社内より私を含めて合計で、なんと4人が参加します。

      なぜFusicはPHPMatsuriに参加するのか

      Fusicは総勢20人弱の会社です。さらにその中で開発者はさらに少ないです。さらにPHPでの開発をメインとするメンバーはさらに少なくなります。FusicのPHP開発者の半分以上が10月14日には大阪にいると思います。

      去年のPHPMatsuri2010への参加は2人でした。
      それがなぜ今年4人に増えたのか。それは、それだけPHPMatsuriが有意義なものだと感じたからだと思っています。

      たった2日を通して得られる大きなもの

      私は主にCakePHPを使用して開発をしていますが、今の開発手法が正しいのか、もっと良いプラクティスがあるのではないか、他のフレームワークも本当の意味で使ってみたい、その思いは常に感じています。
      「もっと楽して開発したい」という怠惰の精神です。

      ただ、普段他の開発者の開発の様子を見ることができるのは社内の人ののみです。
      社外の勉強会にも参加しますが、その場では技術の発表までで、開発の様子をみることはできません。

      「他の人の開発の様子を直に見たい。開発の考え方を直に聞きたい。」それを実現できるのがPHPMatsuriの2日間です。

      「CakePHP2.0はどんな感じなのか?」
      実際にCakePHP2.0で開発している人、ドキュメント翻訳を手がけている人だけでなく、実際にCakePHP2.0『を』開発しているコアメンバーの人がいます。

      「他のフレームワークは使いやすいのだろうか?」あれだけ開発者が一同に会するのです。おそらく、あらゆるフレームワークを使っている人が1人、いや3人くらいはいるでしょう。

      「自分の開発スピードはどんなものだろうか?」実際の他の人のノートPCを覗き込めます(これ、結構おすすめです)。また15日の成果発表LTを見ればその成果をみることができます。

      私は、去年のPHPMatsuriでは他の開発者に圧倒されました。そしてものすごく刺激になりました。それは今年1年の日々の業務の成果や意識においてプラスになったと思っています。

      FusicがPHPMatsuriに期待すること

      Fusicの経営理念に
      「人が成長できる環境を創造します」
      「新しい価値を創造します」
      「人・社会・文化とのつながりを大切にします」

      の3箇条があります。
      PHPMatsuriはこの3箇条にマッチすると思いませんか?

      Fusicは社員の環境と成長を大切にします。それが最終的に会社の利益につながることを知っているからです。

      今年のPHPMatsuriを終えた後に、参加メンバーにプラスに、そしてFusicにプラスになることを期待しています。

      明日の@kaz_29さんにバトンを渡します!

        はてなブックマーク - CakePHP Clickinit Pluginが意外に便利
        このエントリーをはてなブックマークに追加

        Fusic Advent Calendar発起人の小山です。
        最近はPortisheadばかり聴いています。
        さて、Fusic Advent Calendarもクリスマスバージョンが無事終わり(自分は見事に当たりませんでした)、
        エクストラステージ「日本式アドベントカレンダー」に突入しております。
        「も〜うい〜くつね〜る〜と〜」のあれです。

        ブラウザから確認

        Webシステムを作成していると、やっぱりブラウザから挙動をテストをしたりしますよね。
        その時に、便利なのがSeleniumです。
        簡単な挙動確認ならば、Selenium IDEで操作の記録をすることで、何度も同じ操作の確認を行うことができます。

        では、ユーザの新規登録はどうしますか?

        さらにメールアドレスを登録して、確認メールが来るようなテストはどうしていますか?

        一度登録してしまうともう一度そのメールアドレスは登録できなかったりしますよね。

        ブラウザから初期化

        方法はいろいろあると思います。
        データベースを直接操作してもいいですし、そもそもSeleniumを使っているならば、Selenium RCなどを利用する際にデータベースを初期化してもいいかもしれません。
        ただ、ブラウザからちょっと簡単に操作したいと思ってCakePHPのPluginを作成してみたので紹介したいと思います。

        Clickinit Plugin

        Clickinit Pluginはブラウザ側からサーバサイドで処理を実行するためのプラグインです。

        github.com/k1LoW/clickinit

        以下のようにAppContollerの$componentsに登録するだけで、まずは設置完了です。

        次に、実際にサーバサイドで行う処理を書いたスクリプトをapp/vendor/shells/に設置します。
        その時に、ファイル名の先頭には数字を付与してください。これは実行すべきファイルの判別と、実行順序を判定するために利用しています。
        (例:00-initdb.php, 01-clearcache.php)

        あとはページの左上に表示されたタブをクリックするだけで、すべてのスクリプトを実行することができます。
        スクリプトの実行はrequire()を利用しているので、CakePHPの定数やクラスなども使えます。

        たったこれだけのプラグインです。
        Clickinitはサーバのスクリプトを実行するスイッチ的なものです。
        たったこれだけですが、意外に便利です。
        例えば、データベースの初期化だけでなく、CakePHPのキャッシュを一旦削除して挙動を確認するときにも便利です。

        ブラウザから操作ができるので、開発時のSelenium IDEのテストケースに追加してもいいかもしれません。

        注意

        Clickinit Pluginはあくまで開発時に使うプラグインです
        特にサーバ内スクリプトを動かすものになりますので、デプロイ時には外すようにしましょう

        まとめ

        ブラウザからサーバ内スクリプトを実行するClickinitを紹介しました。

        ブラウザから初期化ができるだけで、意外に効率もあがります。
        もし良かったら皆さんも試してみてください。