2005年02月03日

テンプレートのモジュール化をやってみた

この前からやろうやろうと思いながら手を付けずにいた、Movable Typeのテンプレートのモジュール化に挑戦してみました。

そもそもモジュール化しようと考えたわけは、再構築時のサーバ負荷を減らしたいからでした。ただ、ページを生成する時に、「テンプレート・モジュールの中のMTなタグを処理してからインクルードする」のか、「インクルードしてからMTなタグを処理する」のかってことが、この前から少し気になっていて、モジュール化が再構築時の負荷軽減になるのは前者の場合ですけど、よくよく考えるとそんなことでは困ることがあると思うんで、これはなんかおかしい・・・

そこでもう一度、Googleで検索して調べてみると、「モジュール化」という言葉と一緒に「PHP」って言葉がよく出てきます。なんだか分かったような分からないような感じですけど、どうやらうちでは、モジュール化すなわち負荷軽減ってことにはならなさそうです。ちょっとショック!

しかしです。せめてここだけでもモジュールにしたいなって思っていた、右のカラムの「Categories」なんかは、MTなタグを使わずに静的に記述してもそれほど困らないんです。要するにカテゴリーが増えた時だけ、手動でリンクを追加すればいいだけですからね。それこそモジュール化しておけばテンプレート・モジュールに一度手を入れればOKなわけです。しかもこの方法だとカテゴリーの並ぶ順番も自分の好きなようにできるし(これってどうすればできるのかわからなくて・・・)一石二鳥。ってことでとりあえず試してみると、その結果はものすごいものでした。すべてのページを再構築するのにかかった時間が、なんとたったの20秒ちょっと!それまでは1分半ぐらいは掛かってたと思うんで、まさに驚異的。ここがそこまで負荷が高かったとは・・・

となると、がぜん他の部分もやりたくなります。ってことで今度は「Monthly Archives」。月一の仕事が増えますが、仮に忘れても大したことないので(←おいっ)試してみると、さらに5秒近く速くなりました。かんなりいい感じです。普通の人は少しでも楽にって考えるのに、なんで自分はこんなことに快感を覚えているのかはよく分かりません。ナゼ?

再構築時のサーバ負荷軽減は一応ここまでにして、後はメンテナンスがしやすいように、他の共通部分をモジュールにしていきました。もっと早くやっておけばよかったと少し後悔。しかし、これで500ぐらいのエントリーはエラー無しで再構築できそう。まあそこまで続くとは思えないので、これにてひとまずMTいじりは終わりとしたいな。これからは肝心のコンテンツを充実させますです。う〜んかなりすっきりした!

2005年02月03日 08:58