ぼくとわたしのCakePHP

はじめに

http://matsuri.cakephp.jp/
CakeMatsuri応援企画として、リレーブログ「ぼくとわたしのCakePHP」を書くことになりました。Shin1x1さんからのバトンです。
今までのCakeMatsuri青年団のリレーブログは下記に。
http://www.1x1.jp/blog/2009/10/cakephp_and_i.html
http://my.opera.com/sizuhiko/blog/2009/10/19/cakephp
http://blog.candycane.jp/archives/87

色々と思い出してて書いてたら、ジーンとなった。自分はこの1年、いろいろとあったなぁと。たまには振り返ってみるのも良いものですね。なので、興味のある人がいたら誰でもいいので自分のブログに書いてみてください、そしてブログ書いたらトラックバックなりTwitterなりで連絡ください、ここに掲載していきますので。


出会い

CakePHPというキーワードを認識したのは、2008年の1月ぐらい。それまでは、仕事で他社の社内PHPフレームワークを使ったぐらいで、オープンソースPHPフレームワークを使ったことはありませんでした。使ってたフレームワークは、モデルでSQL直書き、ViewはSmartyというパターンが多かったです。
そのころから自社サービスをPHPで構築しようと思ってたことと、他社案件でフレームワークの選定から自由にできることが多くなってきたため、何かしらのオープンソースPHPフレームワークを探し始めました。
いくつかフレームワークはあるみたいだけど、どれにしようか迷ってたとき、本屋で偶然「CakePHPガイドブック」と出会いました。とりあえずCakePHP決めうちでやってみようという、思考停止状態で本を買いました(^^;


最初の印象は、簡単にデプロイできて、PHP4案件が来ても大丈夫という安心感と、いざとなればコアコードを見て改良できそうなコード量のフレームワークだなという感じ。ただ、Bake面倒くさそうとか、複数形とか単数形とか入り混じってんじゃねーよ!とか、設定より規約というのが自分の自由な精神を奪ってるんじゃないかとか、html出力するだけなのにヘルパー覚えるとかありえないwwとかも思いました。そのせいで、CakePHPガイドブックを見て、ちょっと動かして、しばらく放置してました。。。

CakePHPを手になじむまで使ってみる

放置していたCakePHPですが、2008年8月ごろに、手ごろな案件があったので、CakePHPで作ってみようと思い、本格的に触り始めました。ブログにメモ程度の情報を書き始めたのもその頃です。その頃は何も考えずに、id:cakephperなんてとっちゃいましたが、今となってはもっと考えて名前をつければ良かったと思ってます(海外の人からみると、cakephperという名前だとコアデベロッパーかと思っちゃうらしい)

まず最初にとりかかったのは、CakePHPの規約を回避して、どれぐらい自由度を持って作れるかというw、変な角度からの調査でした。その頃に書いたブログが「cakePHPの路線をあえてはずれる方法を身につけておく」です。


これである程度、使えそうだなと思ったことで腹を決めて、手になじむまで使ってみようと走り始めました。面倒だけどヘルパーとか、規約とかを覚えるのは、長期的に見て生産性を上げそうなのでそれも含めて受け入れることにしました(これは結果として正解でした)

自分の性格を知る

昔から興味あることが多いと、あれもこれもと手を出してしまい、結局中途半端な状態で終わっていることが多い自分にそろそろケリをつけたほうがいいなと思ってたので、とりあえずCakePHPだけを見て、それに注力して、それ以外のものは必用最低限のインプットに抑えました。もうCake中毒者のように、Cake漬けの日々が始まりました。
これは結果としてよかったです、他のものに目移りしないし、知識や経験が深まるとより楽しくなるので良い循環が出来ました。今では英語の勉強にもこのシングルタスク勉強法みたいなことをしてて、わりとうまく行ってます。

決意「ガンガン行こうぜ」

2009年1月、「今年の抱負」をブログに書きました。ある程度Cakeの経験値が溜まってきたので、これからはコミュニティ貢献や勉強会の発表などにも積極的になろうと誓いました。

なんだか、CakePHPには慣れたけど、基本は一人の開発が多いので孤独だなぁと思うことも多くて、仕事以外のエンジニアの繋がりがほしいと思ってたし、Cakeから恩恵を受けた分、ちゃんと返していきたいと思ってたので、この1年はなりふりかまわず、コミュニティに参加していこう、チャンスがあれば手を挙げよう、バグを見つけたら報告するぜ!と強く思ったのです。

初めてのコミット

偶然にもCakeの不具合を見つけたので、今年の抱負を実行すべく、つたない英語でチケットを書きました。
paginationにXSS攻撃の可能性があったのでチケット投げた
CakePHPのTracにバグチケットを出すまで


これは良い経験になりました。類似事例がないか検索して、再現方法や、修正コードを書いて、英語で説明文を書いてポストしました。実はポストするまで、ちょっとビビッてしまって、チケットのドラフト記事を1日寝かせましたw
これを機会に、CakePHPのコアデベロッパーや世界のコミュニティを気にするようになりました。今までは未知の世界でしたが、意志を持って話せば通じるもんだと。

CakePHP勉強会デビュー

2009年3月に、CakePHP勉強会@福岡が開催されるということで、初めてCakePHP勉強会に参加し、発表。ネタは「SQL Explain Component」。この勉強会で、そのコンポーネントをDebug_kitに組み込んだ方が良いとアドバイスを受けたので、早速組み込んで、Debug_kitの作者Markに連絡したら、マージしてもらえました。そしてDebug_kitの貢献者欄に僕の名前が載ったHello World!!!!


人との出会い

CakePHP勉強会@福岡の夜は熱かったw 2次会が終わったのがAM 3:00とか。この交流をきっかけに、日本の各地域のコミュニティや、Cakeな人たちに興味を持ち、そして距離を越えて交流したいと思い、CakePHP IRC集会を実行に移しました。それまでは、IRC集会の構想はあったけど、いまいちかなぁと思ってたんですが、福岡の飲み会で相談したら賛同してもらえたので、勢いで実行できました。

そこから、Twitterを始めて、輪が広がり、飲み中心のオフ会をkaz_29さんとMasa-Pさんとやってみたりして、オンラインやオフラインで、交流を続けてます。

孤独に開発してた1年前の自分じゃ考えられない状況です。アドバイスもらえたり、知らないことを教えてくれたり、自分のやってることに賛同してくれたり、本当に力を貰いました。今の自分があるのは、やはり出会ってきた人との関係無しには成り立ちません。誰もいない世界でCakePHP最高だとか、駄目だとか叫んでるだけだったら、ここまで僕の興味は持続しなかったんじゃないかな。
この1年、自分を大きくステップアップさせてくれたCakePHPやコミュニティに、感謝してます。


Cake祭り

CakeFEST@ベルリンに参加して、日本でもこんな感じのフェスをやりたいと安藤さんと話したりしてました。それがとうとう10/30(金), 10/31(土)に実現します! Cakeのコアデベロッパーも来るし、日本全国からCakeな人たちが集まります。Cake祭り、お祭りなので楽しんで、どんどんと世界を広げて行って貰えたらなと思います。
もちろん、僕もこのイベントでさらに世界を広げたいと、ワクワクしています(テカテカはしてませんw)。

まだカンファレンスのチケットは余っておりますので、興味のある方は是非、迷わず参加を!
カンファレンスの内容は下記にあります。
http://matsuri.cakephp.jp/pages/talks
http://matsuri.cakephp.jp/
それでは、Cake祭りでお会いしましょう!

明日のリレーブログは、id:kaz_29 さんです。お楽しみに!