フレームワーク/Webアプリケーションの実装案。
- -
やること † 
フレームワーク/Webアプリケーション † 
クライアントからのリクエストを処理 † 
リクエスト † 
これから考えること † 
フレームワークの役割をフレームワーク/Webアプリケーションとフレームワーク/WikiEngineで分担。
全てURIで † 
ページ名と要素部分はフレームワーク/WikiEngineでやること。
ここで行うのはそれ以前まで。
フレームワーク/WikiEngine呼び出し † 
リクエストをフレームワーク/WikiEngineに渡す。
MVC † 
ユースケースクラス † 
ユースケーススコープ † 
Controller = Usecase
その中だけで有効なデータ。
ビュー † 
レスポンス † 
ログイン→HTTP_REFERERにリダイレクト † 
ログイン後はHTTP_REFERRERのページへ。リファラーが同一ドメインでないなら既定のURIへ。 → :i/フレームワークの実装案
:i/フレームワーク/WikiEngineからの出力をレスポンスにする † 
選べるビュー † 
リクエストとレスポンスの分離。
認証 † 
ログイン/ログアウト † 
オープン認証なんかはWikiEngineよりもこちらで。→WikiEngineは外からユーザーオブジェクトを受け入れることになる。
ログアウトも?
認証とユーザーオブジェクトの用意 † 
ユーザー認証をして、認証済みユーザーオブジェクトを作る。作るのと破棄だけ。
一般的な情報…IDやパスワードはある。その他の内容はフレームワーク/WikiEngineが与える。内容がページになっているので。
:i/アカウントの有効期限 † 
変形MVC † 
docs.google.com
設定方法を用意 † 
Webアプリの設定はWikiページに書けない † 
セッションの維持・管理 † 
セッションを用意。
ページ/要素その他からのアクセスに応える。
エラー対処 † 
フレームワーク/エラーメッセージにクラス名 † 
フレームワーク/エラーページにクエリーを † 
HTTPのGETメソッドのときは…URLをデコードして表示するなら意味がある。
5xx Internal Errorの対処も。
セッションの用意 † 
ページ/セッション[?]の基礎。ページ/要素が扱うのはページでできたセッション領域のほう。
:i/リクエスト再送はフレームワークで † 
利用者の情報損失を防ぐ。リトライ可能に。使いにくくなるのを防ぐ。
:i/エラーメッセージにクラス名 † 
最適化 † 
フレームワーク/メモ化 † 
多段メモ化。
:i/エラーページにクエリーを † 
HTTPのGETメソッドのときは…URLをデコードして表示するなら意味がある。
:i/出力の統合はどうやるか?[?] † 
フレームワーク/WikiEngineから呼ばれて † 
リクエストとレスポンス † 
全てURIで † 
ページ名と要素部分はフレームワーク/WikiEngineでやること。
それ以前のドメインとWikiの指定までを受け持つ。
リクエストをフレームワーク/WikiEngineに渡す † 
フレームワーク/WikiEngineからの出力をレスポンスにする † 
それをクライアントへ。
レスポンスにはクライアントアプリのコードも含む。データ付きのクライアントアプリを送信。
数種類の出力バッファーを用意。グローバル変数に追加していく。HTMLヘッダー・bodyの冒頭・bodyの末尾・ページ内の記述された箇所(これが基本)など。ページ/要素でも(どこに書かれていても)HTMLヘッダー出力などができる。
認証 † 
ログイン/ログアウト † 
オープン認証なんかはWikiEngineよりもこちらで。→WikiEngineは外からユーザーオブジェクトを受け入れることになる。
ログアウトも?
ユーザーオブジェクトの用意 † 
認証済みユーザーオブジェクトを作る。作るのと破棄だけ。
内容はフレームワーク/WikiEngineが与える。内容がページになっているので。
その他、実装上の細かいこと † 
フレームワーク/WikiEngineの実装案より † 
WikiEngineではなくこちらで。
設定 † 
:i/Webアプリの設定はWikiページに書けない † 
ログ † 
- アクセスログはページに残す
→フレームワーク/Webアプリケーションのログファイルと、フレームワーク/WikiEngineのページに残すログは別。
フレームワーク/Webアプリケーションのログファイルと、フレームワーク/WikiEngineのページに残すログは別。
→ :i/フレームワークの実装案
最適化 † 
メモ化 † 
ページ/要素それぞれでメモ化すればいいのでは??