WordCamp Tokyo 2011で、コラボレーションに向いたPHPコーディングや設計についてのセッションをします


出るよ

2011年11月27日(日)に品川シーサイド 楽天タワー2号館で行われるWordCamp Tokyo 2011に出演させていただくことになりました。

WordCamp Tokyo 2011

そして、僕のプロフィールと講演内容も公開されました。

スピーカー|原 一浩(はらかずひろ)

時間は、15時15分からで、

人来るかな

タイムテーブルを見ていただくとわかりますが、

田口元さんの「百式ブログの毎日更新を10年+続けてわかったことと、これからの展望」や、

をかもとさんの「 WordPress ハイパフォーマンスチューニング Reloaded」

など人気セッションが並ぶラインです(あまり来ないかもしれませんね)

僕が行うのは、

クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考

というイベント一長いタイトルで、

とかくカオスになりがちな WordPress の PHP 周りのコードを、どう綺麗な設計で作るかということをデザイナーやディレクター向けにわかりやすく扱います。1年後に見て「あれ、なんだっけ?」となりにくい、コラボレーションしやすい設計をご紹介します。

という内容になります。

ウェブサイトはコンテンツが大事。もちろんそうです。ユーザと言えばエンドユーザつまりはサイトの閲覧者ということも当たり前の話です。
が、今回のお話はどちらかというと、CMSを扱うユーザー(つまりサイトの運営者)のためにあれこれ気を使う系のお話で、しかもテンプレートカスタマイズよりもレイヤーとしては低い考え方の土台の話。
設計思想の土台が変わったからといってサイトを訪れるユーザーには何も変化がないですが、サイトの将来性という意味では大きく変わってきます。

WordPressを普通にブログとして使ったり、CSSとHTMLと少しのテンプレートタグしか使わない人や、既にばりばりWordPressアプリケーションを作っている方には、あまり響かない内容かもしれません。

でも、テーマのカスタマイズを行ったりしてPHPのコーディングも少しはしたりしはじめたというデザイナーさんや、過去に拡張を場当たり的に行ってにっちもさっちもいかなくなったコーダーさんには聞いていただきたい内容です。あと、CMSとしてちゃんと使うサイトの設計を担当するディレクターさんとか。もちろんプログラマーさんが聞いても、そういう使い方も出来るのかっていう内容かもしれません。

例えば、家を作る時に、とりあえず土台は場当たり的につくっておいて、インテリアや外装はちゃんと手をかけるなんてことはしないですよね。後から設計を変えるのはかなりヘヴィな作業です。WordPressはCMSであると同時にPHPコードで構成されたWebアプリケーションでもあります。

現在は静的なページが多数を占めていたとしても、そのうちユーザーのニーズに応じて様々な機能を追加したくなるかもしれません。そういう可能性を考慮しPHPのコーディングを行い、なおかつ、メンテナンスする人が別の人に変わった場合でもわかりやすい設計をするには、一体どのような考え方とメソッドが必要かというのがテーマです。

2年から3年ほど前にWordPressを使った比較的規模の大きい複雑なカスタマイズの案件を担当しました。
これは大きな組織の内部向けのイントラシステムの1つで、ブログのような投稿スタイルでいろいろなデータを扱いたいというものです。

いろいろなCMSが検討されたのですが、結局WordPressを採用しようという運びになり、構築をはじめたのですが、結構カスタマイズをする部分が多く、ほとんどの部分はフックを多用したプラグインでまかないましたが、一部どうしてもWordPressの内部コードをいじってカスタマイズという形をとりました。

既存のプラグインも併用しましたが、こちらも一部カスタマイズをしました。特に既存のカスタマイズはコードが入り組んでいて結構苦労した記憶があります。

また、切り離せる部分は別途WebアプリケーションフレームワークCakePHPと別のデータベースを使って構築し、APIという形でWordPressと連携させたりして管理画面を作ってきました。
そのときのノウハウを前のWordCampのレセプションやCakePHP勉強会で発表したりしました。

その後のフェイズで、更なる拡張が必要になり、結局はCakePHPでスクラッチなシステムとして再構築したわけですが、今やるとしたら、もうちょっとうまくやるかもしれません。

そんな経験を踏まえて、拡張性の高い、メンテしやすく、コラボレーションしやすいコーディング方法と設計ノウハウをこのセッションでお話できたらと思います。

Comments are closed.