焼きたての感想

第2回CakePHP勉強会に参加してきました。とても刺激を受けました。感想、疑問、個人的な反省という三段構成で行きます。

感想

addons.mozilla.orgの事例

addons.mozilla.orgがcakephpで作られているというのは聞いたことがありましたが、オープンソースでやっているというのは知りませんでした。

Update:Remora – MozillaWiki
http://wiki.mozilla.org/Update:Remora

Revision 10566: /addons/trunk/site
http://svn.mozilla.org/addons/trunk/site/

ブラウザでも見られますし、subversionでひっぱってきてもいいです。/app以下をチェックアウトして持ってきたのでおいおい読んでみます。

見覚えのあるaddonsのサイト(Remora)がlocalhostで動いて、しかも下の方に今度はローカルで見覚えのあるSQLのデバッグログが出てきたプレゼンには感動しました。あとmemcache速えー。memcacheつえー。

トピックイットの事例

デバイスフリー志向でPC版やモバイル版だけでなくipod touch版やwii版を用意しているということ、PCと携帯のアクセスが半々ぐらいということが頭に残りました。振り分けはIPやUA等でやってるのかな。ビューだけ(もしくは文字コードだけ)分けるのか完全に分離しちゃうのかどんなファイルの置き方をしているんだろう。
あと以前、自分の作ったプログラムのDBからデータを返すRESTなAPIもどき(GETのパラメータに応じて毎回クエリを作ってXMLで返す)は作ったことがあるのですが、結局自分しか使わなくてあまり負荷がどうのという話にはなりませんでした。やっぱりAPIの定番の作り方について勉強しようっと。ここもキーポイントはキャッシュなのかな。
なんだかトピックイットともCakePHPとも関連が薄い感想ですみません。

懇親会

findで引っ張ってくるデータでunbindするのがめんどくさいって話を振りました。

例えばuserモデルがmailaddressモデルとnicknameモデルとpostモデルとcommentモデル持っているときに、プロフィールを編集したいときにはuserとmailaddressとnicknameだけあればよくてpostやcommentは要りません。で、まずはrecursive、次にunbindModelで取り外すわけですが、関連がある状態で不要なものをunbindModelするという形だと、テーブルが増えたときや構成変えたときに変更漏れが出てしまいます。さらに、使い始めのときはbakeが勝手にアソシエーション書き出してくれるからいいですが、テーブル増やしたり、カラム名変えたりのときは倍倍でめんどくさいです。かといって、関連まっさらにしてから必要なものを組み立てる、というのはarray()が多すぎてこれもまためんどくさいです。というような話です。

これについてアドバイスをもらいました。
Modelのアソシエーションはあらかじめ全部書いておく。それでModelは全部基本的にrecursive = -1にしておいて、必要なときにrecursiveの数字上げたりbindModelしたりすればいい、条件はあらかじめメンバ変数にでもいれておけばいいとのことです。

これでもarray()地獄なのに変わりはありませんが、一度決めておけば変更漏れも少なくなるのでこれで行こうと思います。

基本のアソシエーションだったり、必要なアソシエーションだったりは将来的にはYAML等で外に出したいところだなあ。validationをYAMLにしてたのどこかで読んだ覚えがあるので、それを参考にしてのちのち要検討。

疑問

Remoraのプレゼンの資料では、ModelからfindやfindAllで返って来たデータを、かなりあっさりコントローラーからビューにsetしてるように見えました。そうするとビューではモデル名とDBのカラム名であふれかえるような気がします。でも今ぱらぱらとRemoraのコードを眺めていますが、それほど溢れかえってる感じは無いです。かといってヘルパーに丸投げしている感じもしないですし。ここはもうちょっと読んでみます。

今自分が書いてるコードだと、モデル名やカラム名をそれぞれで隠蔽しようとしてモデルやコントローラーでいじくり回した結果、よくわからないデータをビューに渡すことになってしまっています。結局二度手間三度手間になっているのでビューでいじる方がわかりやすいのかも。

反省

懇親会で積極的にいけなかった。次はもっと話しかけよう。話した方の数が少ないのはまあいいとしても、情報提供的なことが出来なかったのがすごく失敗。情報をもらってばかりで提供することが出来なかった。つくりかけのあれかつくりかけのこれのどっちか完成させておけば一ネタになったはず。もったいないことした。

せめてフィードバックだけでもということで感想等をきちんと書いてみました。そして、貴重な勉強会ありがとうございました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中