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


プロトタイピング 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にする
    WikiEngine内部ではクラス間はWikiNotationで関連するので。似ているけど別の仕組み。
    UsecaseやRequest、Query(検索/クエリーではない)もWikiEngineの一部。Componentの<<control>>や<<model>>部分になる。
    WikiEngineの全クラスをComponentにしなくていい。フレームワーク/Webアプリケーションと関わりのあるクラスだけComponentを継承
  • サイトのグローバルナビを1つのComponentにする