働きたくないので、仕様を考え続ける。
まず、コンセプトの一つに、編集時は苛つくほど処理が重くても良いから、閲覧時はキャッシュを多用してとにかく軽くする。すなわち、見る段階では構文解析とか不要で既にhtmlが完成されていて、それを表示するだけという。
だけど全ての表示系がそれで済むはずはない。例えば、ランキングとか、アクセスカウンタとか。そういうのは見るたびに表示が変わる。だけど、これは構文解析を行わなければ良いだけの話。つまり、構文解析の必要なものは、完全にキャッシュを生成しておいて、ランキングみたいなものはキャッシュを作成しない方針とか。
でも、必ず変わるものは考えれば、アクセス毎に変わるもののみ。挙げてみよう。
- アクセスカウンタ
- あなたが最近読んだ記事
- 内部メイル機構
- 読んでいない記事
くらいしか思いつかないよほんと。で、今回かならず搭載する必要があるのが、アクセスカウンタ。
思いつきで、表示されるモジュールは二つに分けれるのではないかと思う。つまり、
- カテゴリ分類可能系、コンテンツ系、静的系
- カテゴリ利用系、非コンテンツ系、動的系
つまり、一つ一つのコンテンツを吐きだし、カテゴライズされてしまうものを吐き出す、つまり、wikiとかblogとかそう言う扱い。というやつら。掲示板も実はその中に入れても良いかもしれない。こういう、カテゴリ機能を利用するモジュールは分けてしまおう。
思いつく限り、各モジュールの設定項目。
- キャッシュ
- 編集時にキャッシュする
- キャッシュしない
- 読み込まれるたびに更新確認して、更新されていればキャッシュ更新
- カテゴリ
- カテゴライズ可能
- カテゴリ利用しない
よって、カテゴリを利用する際には、こんなデータベースが要る。
- カテゴリ依存関係一覧
- カテゴリから抽出したカテゴリキャッシュ
- どのカテゴリを更新した時にどの情報を更新すべきかのリスト。
というか、モジュール化ってどうやるんだろう……(切実)。