実現可能性を確かめるための曳光弾。


プロトタイピング Edit

モノ

  • クエリー(ユーザーから与えられたデータ)
    グローバルなデータ。なのでシングルトン。Componentが書き変えられることがある。その場合、以降のComponentに影響する。
  • モデル、WikiEngine(Pageくらいしかクラスがない)
    クエリーからの入力。形式自由・クラスごとの独自形式。
    フレームワーク/WikiEngineのクラス名はX

クラス Edit

→クラス[?]

フレームワーク間の関係 Edit

HTMLを要求するのはフレームワーク/Webアプリケーションのほう。
WebアプリケーションはWikiEngineを3回呼ぶ。

  1. エントリーポイント
  2. フレームワーク/Webアプリケーション
    Xオブジェクトを生成。
  3. フレームワーク/WikiEngine
    Xオブジェクトを作る(だけ)。
  4. フレームワーク/Webアプリケーション
    Xオブジェクトにリクエストを伝える(そのまま渡すのではなく、変数の形で)
  5. フレームワーク/WikiEngine
    自身の状態を変化させる。状態は永続化する。
  6. フレームワーク/Webアプリケーション
    XにHTMLを要求。
  7. フレームワーク/WikiEngine
    HTMLを生成。
  8. フレームワーク/Webアプリケーション
    HTMLにヘッダーを付けてWebページ化。

変換 Edit

  • WikiTextのオブジェクト化
  • Elementから(HTMLなどの)別形式を得る
    HTMLならrender()というメソッド。

Wiki、Entry、View、Revision Edit

  • Wiki(サイト)
  • Entry(項目)
  • View(見解
  • Revision(

いずれもPageクラスのインスタンス名。

エラーレベル Edit

  • 利用者向け情報 Info
    不正なリクエストなど。ページメッセージ欄に出力。
    X/Error/Info[?]
  • 警告 Warning
    デバッグ用ログ出力と管理者グループ宛メールに出力。
    処理続行。
    X/Error/Warning[?]
  • 致命的エラー Fatal
    処理中断。
    開発時のアサーション違反はエラー、運用中は警告だけ。
    X/Error/Fatal[?]

排他制御 Edit

更新コマンドのキューイング。
キューと要素の関係。
キュー→ファイル(名前順)
要素→永続化されたCommandオブジェクト。
ファイルロックは…PageFactoryが永続化されたオブジェクトを復帰/保存するときと、オブジェクトが自身の関連ファイル(他のオブジェクトの所有物でないファイル)を操作するときくらい。
モデル系クラスでは自分で自身を書き換える。他のクラスを扱うのはPageFactoryくらい。

Componentの使い方 Edit

  • WikiEngineを1つのComponentにする
    Xではクラス間が直接関連しないので。
  • サイトのグローバルナビを1つのComponentにする