&pgid();
2008/8/19(火)のMovable Type Developer Conferenceのメモ。
#contents
** 6A 金子氏 [#u3e5703a]
- MT4.1は大規模サイト向けのデザイン管理を強化した
- MT4.2は大規模サイト向けのパフォーマンス最適化
- スケーラブルなサイト製作
-- 必要に応じてブログを追加
-- 沢山のブログデザインを効率的に管理できる
--- MT4.1
-- 多アクセスに対応できるアクセス権限設定
- MT4.2
-- テンプレートプレビュー
-- ページ単位でのパフォーマンス最適化をMTの管理画面から可能
-- MT4.1からMT4.2にアップグレード再構築処理速度33%アップ。キャッシュ機能で45%アップ。3.36比べても約2倍(キャッシュ機能併用で3倍)
-- MTCS
--- グループブログ
--- ブログのデザインにあわせた、簡易管理画面で投稿可能。カスタムフィールドでの項目追加も可能
--- 注目ユーザー、友達リスト(SNSのような双方向リストではない)
**Beau Smith氏 - 再構築パフォーマンスの最適化 - [#qac6af41]
- サイトがSlow(遅い)には色々ある
-- ローカルの環境
-- データセンターの場所とか
-- MTのテンプレートが最適に書かれていないとか
- Good News!
-- ブログのテンプレートやコードは全てコントロール可能
-- 最適化用の機能が盛りだくさん
--- マークアップは最小限に
--- 画像を最適化
--- スタイルはCSS
--- コードも少なく
-- コンテンツをキャッシュ
--- etc
- 1. スタティックのメリット
-- ブログ記事を書いたり、コメントが投稿された場合(コンテンツが変更されたときのみ)はDBの処理が走る
-- 3つのパブリッシング方法
--- 1. ブログ記事を新しく保存するとき(トラックバックやコメントも)
--- 2. テンプレートの再構築
--- 3. 再構築ポップアップ
-- インデックステンプレートを保存と再構築するとそのインデックステンプレートのみ再構築される
-- カテゴリとカテゴリ月別の二つのマッピングを持っているテンプレートの場合、カテゴリ別アーカイブとカテゴリ月別アーカイブが再構築される
-- 特定のアーカイブマップのみ選択するとそのリストだけが再構築される
-- ポップアップを使えば全てのインデックステンプレートのみを再構築可能
-- 全てのファイルの再構築の場合もMTはインテリジェントに変更されたものだけ構築するように動く
- 2. 再構築オプションの選択
-- ダイナミック
--- 再構築は短縮されるが表示は遅くなる。あまりアクセスされないページに効果的。めったにアクセスされないアーカイブとか、他のサービス経由で公開されるフィード
--- 最適と確信があるときだけ利用するのを薦める
-- 公開キュー
--- MT4.2では再構築のオプションをテンプレート、またはアーカイブマッピング単位に設定できる。スタティックパブリッシングを非同期的に行われる。ページは決められた間隔で公開される(即時公開ではない)。メインページ、ブログ記事アーカイブ、フィード以外は即時性が高くなくてもよいのでオススメ
--- 最初は公開キューに指定されたコンテンツはフラグだけ指定される
--- Cronなどでフラグがついたコンテンツの構築が行われる
-- スタティック+サーバサイドスクリプティング
--- ページの中で頻繁に更新される部分だけを別に再構築して、スクリプトでinclude等して表示。ページ中のヘッダなどほとんど変化のない箇所を再構築必要がなくなる
--- php include、mt:includeでもできる。mt:includeにする場合はincludeされる側はインデックステンプレートではなくテンプレートモジュールとする
--- MTでは4種類のincludeを吐ける。ASP、JSP、PHP、Apache
- 3. テンプレートモジュール
-- モジュールの利用
--- staticでの利用が多い
--- モジュールを作成し、<$mt:include module="モジュール名"$>で読み込む
-- サーバーサイドインクルード
--- 1. ブログの公開設定でSSIの種類を指定する
--- 2. モジュールでSSIを有効化
--- 3. 再構築する
-- モジュールのキャッシュを指定できる。イベントベースまたは時間ベースでキャッシュクリアが指定できる
-- モジュールでの条件タグ
--- スタティックな場合は条件タグの利用は問題なし
--- モジュールがSSIを使っていたり、キャッシュを使っていたりする場合は思い通りじゃないかも。なぜなら、状況が変わっているから。モジュールが出力する内容がページごとに全く同じならSSIやキャッシュを行ってOK。異なる場合はSSIやキャッシュはできない
--- 必要ならサーバサイドでの条件分岐を使う方法もある
-- includeBlockタグ
--- あまり使われていないがパワフル
--- ラッパータグ
モジュールのMTML(Widget Wrapper)
<div class="meal">
<$mt:var name="contents"$>
</div>
テンプレートでモジュールを利用
<mt:includeBlock module="Widget Wrapper">
<ul>
<li>Eggs</li>
<li>Toast</li>
</ul>
</mt:includeBlock>
--- SSIやキャッシュは使えないので注意
--- 変数も設定できる
- 4. Movable Type 4.2
-- パフォーマンスを劇的に向上
-- 4.2時間->9分とか
- 5. FastCGI
-- MTをFastCGIで実行すれば全体のスループットも向上できる
-- 管理者がfcgiに対応してくれていれば簡単
--- .cgi->.fcgiにする
--- mt-config.cgiにAdminScript mt.fcgiなどに設定変更する
--- mt.fcgiにアクセスする
- モジュールをincludeすると遅いという定説はリファクタリングして対応した
- 4.2で大きくテンプレート構造を大きく変えた理由はMT4.2で新しく入ってきたユーザがわかりやすいようにするため。4.0のテンプレートは冒頭にmtタグの変数定義などがありわかりづらかった。
- Signポストという考え方を用意してテンプレート構造を作った。どこが〜で始まり〜で終わるみたいな対応関係をテンプレートをまたがってわけないようにしたり。
- デフォルトテンプレートは基本的にサンプルなので、サンプルだと思ってください。有用なテンプレートセットも出てくると思うのでそれも利用したり、参考にして欲しい
- MTのヨーロッパシェアは日本よりは小さいが増えてきている。エンタープライズ、イントラネット系で増えているらしい。
#blikifooter(進地);
tag: [[Movable Type>tag/Movable Type]]、[[MT>tag/MT]]