1. やること
    1. フレームワーク/Webアプリケーション
  2. これから考えること
    1. MVC
      1. ユースケースクラス
      2. ユースケーススコープ
  3. クライアントからのリクエストを処理
    1. リクエスト
      1. 全てURIで
      2. フレームワーク/WikiEngine呼び出し
      3. 選べるビュー
    2. レスポンス
      1. ログイン→HTTP_REFERERにリダイレクト
      2. :i/フレームワーク/WikiEngineからの出力をレスポンスにする
      3. 変形MVC
    3. 認証
      1. ログイン/ログアウト
      2. 認証とユーザーオブジェクトの用意
      3. :i/アカウントの有効期限
    4. 設定方法を用意
      1. Webアプリの設定はWikiページに書けない
    5. セッションの維持・管理
    6. エラー対処
      1. :i/リクエスト再送はフレームワークで
      2. :i/エラーメッセージにクラス名
      3. :i/エラーページにクエリーを
    7. セッションの用意
    8. 最適化
      1. メモ化
    9. リクエストとレスポンス
      1. 全てURIで
      2. :i/出力の統合はどうやるか?[?]
  4. フレームワーク/WikiEngineから呼ばれて
    1. リクエストをフレームワーク/WikiEngineに渡す
    2. :i/フレームワーク/WikiEngineからの出力をレスポンスにする
    1. 認証
      1. ログイン/ログアウト
      2. ユーザーオブジェクトの用意
      3. :i/アカウントの有効期限
    2. 永続化とロックシステム[?]
      1. 永続化
      2. ロックシステム
    3. その他、実装上の細かいこと
      1. フレームワーク/WikiEngineの実装案より
    4. 設定
      1. :i/Webアプリの設定はWikiページに書けない
    5. ログ
    6. 最適化
      1. メモ化
  5. そのほか
    1. :i/疑似言語とPerlでフレームワーク[?]
    2. :i/出力の統合はどうやるか?[?]

フレームワーク/Webアプリケーションの実装案。

やること Edit

フレームワーク/Webアプリケーション Edit

  • -

これから考えること Edit


フレームワークの役割をフレームワーク/Webアプリケーションフレームワーク/WikiEngineで分担。
  1. やること
    1. フレームワーク/Webアプリケーション
  2. これから考えること
    1. MVC
      1. ユースケースクラス
      2. ユースケーススコープ
  3. クライアントからのリクエストを処理
    1. リクエスト
      1. 全てURIで
      2. フレームワーク/WikiEngine呼び出し
      3. 選べるビュー
    2. レスポンス
      1. ログイン→HTTP_REFERERにリダイレクト
      2. :i/フレームワーク/WikiEngineからの出力をレスポンスにする
      3. 変形MVC
    3. 認証
      1. ログイン/ログアウト
      2. 認証とユーザーオブジェクトの用意
      3. :i/アカウントの有効期限
    4. 設定方法を用意
      1. Webアプリの設定はWikiページに書けない
    5. セッションの維持・管理
    6. エラー対処
      1. :i/リクエスト再送はフレームワークで
      2. :i/エラーメッセージにクラス名
      3. :i/エラーページにクエリーを
    7. セッションの用意
    8. 最適化
      1. メモ化
    9. リクエストとレスポンス
      1. 全てURIで
      2. :i/出力の統合はどうやるか?[?]
  4. フレームワーク/WikiEngineから呼ばれて
    1. リクエストをフレームワーク/WikiEngineに渡す
    2. :i/フレームワーク/WikiEngineからの出力をレスポンスにする
    1. 認証
      1. ログイン/ログアウト
      2. ユーザーオブジェクトの用意
      3. :i/アカウントの有効期限
    2. 永続化とロックシステム[?]
      1. 永続化
      2. ロックシステム
    3. その他、実装上の細かいこと
      1. フレームワーク/WikiEngineの実装案より
    4. 設定
      1. :i/Webアプリの設定はWikiページに書けない
    5. ログ
    6. 最適化
      1. メモ化
  5. そのほか
    1. :i/疑似言語とPerlでフレームワーク[?]
    2. :i/出力の統合はどうやるか?[?]

MVC Edit

ユースケースクラス Edit

ユースケーススコープ Edit


Controller = Usecase

その中だけで有効なデータ。

クライアントからのリクエストを処理 Edit

リクエスト Edit


†クラス別のセッションデータ[?]

全てURIで Edit


ページ名と要素部分はフレームワーク/WikiEngineでやること

ここで行うのはそれ以前まで。

フレームワーク/WikiEngine呼び出し Edit


リクエストをフレームワーク/WikiEngineに渡す。

選べるビュー Edit


リクエストとレスポンスの分離。

レスポンス Edit

ログイン→HTTP_REFERERにリダイレクト Edit


ログイン後はHTTP_REFERRERのページへ。リファラーが同一ドメインでないなら既定のURIへ。 → :i/フレームワークの実装案

:i/フレームワーク/WikiEngineからの出力をレスポンスにする Edit

変形MVC Edit

MVC.svg

docs.google.com

認証 Edit

ログインログアウト Edit


オープン認証なんかはWikiEngineよりもこちらで。→WikiEngineは外からユーザーオブジェクトを受け入れることになる。

ログアウトも?

認証ユーザーオブジェクトの用意 Edit


ユーザー認証をして、認証済みユーザーオブジェクトを作る。作るのと破棄だけ。

一般的な情報…IDやパスワードはある。その他の内容はフレームワーク/WikiEngineが与える。内容がページになっているので。

:i/アカウントの有効期限 Edit

設定方法を用意 Edit

Webアプリの設定はWikiページに書けない Edit

セッションの維持・管理 Edit


セッションの基礎。ページ/要素が扱うのはページでできたセッション領域のほう。

セッションを用意。

ページ/要素その他からのアクセスに応える。

エラー対処 Edit


5xx Internal Errorの対処も。

:i/リクエスト再送はフレームワークで Edit

利用者の情報損失を防ぐ。リトライ可能に。使いにくくなるのを防ぐ。

:i/エラーメッセージにクラス名 Edit

:i/エラーページにクエリーを Edit

HTTPのGETメソッドのときは…URLをデコードして表示するなら意味がある。

セッションの用意 Edit


ページ/セッション[?]の基礎。ページ/要素が扱うのはページでできたセッション領域のほう。

ページ/要素その他が扱うセッションを用意。

最適化 Edit

メモ化 Edit


多段メモ化

リクエストとレスポンス Edit

全てURIで Edit


ページ名と要素部分はフレームワーク/WikiEngineでやること

それ以前のドメインとWikiの指定までを受け持つ。

:i/出力の統合はどうやるか?[?] Edit

フレームワーク/WikiEngineから呼ばれて Edit

リクエストをフレームワーク/WikiEngineに渡す Edit

:i/フレームワーク/WikiEngineからの出力をレスポンスにする Edit

認証 Edit

ログインログアウト Edit


オープン認証なんかはWikiEngineよりもこちらで。→WikiEngineは外からユーザーオブジェクトを受け入れることになる。

ログアウトも?

ユーザーオブジェクトの用意 Edit


認証済みユーザーオブジェクトを作る。作るのと破棄だけ。

内容はフレームワーク/WikiEngineが与える。内容がページになっているので。

:i/アカウントの有効期限 Edit

永続化とロックシステム[?] Edit


Webアプリとは別だけど。

なにかのフレームワークでやることではある。

永続化 Edit

ロックシステム Edit


ロックフェイズ

決まった順序ロック。予約制なので必要なロックを事前に決めなければならない。

永続化クラスもこのルールを守らなければならない。ロック対象と永続化クラスで扱うファイルは区別する。例えばディレクトリを分けて。同じファイルを両者で使うことはしない。

→全て永続化クラスで。ロックシステムは必要ない。

その他、実装上の細かいこと Edit

フレームワーク/WikiEngineの実装案より Edit


WikiEngineではなくこちらで。

設定 Edit

:i/Webアプリの設定はWikiページに書けない Edit

ログ Edit

最適化 Edit

メモ化 Edit


ページ/要素それぞれでメモ化すればいいのでは??

そのほか Edit

:i/疑似言語とPerlでフレームワーク[?] Edit

:i/出力の統合はどうやるか?[?] Edit