目次 †
- -
実装のためのまとめ。
関連 †
検索:プロトタイピング
- -
プロトタイピング周辺のタグ †
Arrayプロトタイピングとは †
実装のためのまとめ。
全体のクラス図 †
https://www.dropbox.com/sh/6d15699bc8vded3/AADhSZL6RV4ySd_lHbLSFAM2a/wiki?preview=クラス図.png
特に関連の強いページ †
実装 †
Perlで。
†
とりあえずPerlで。
UI抜きで。
フレームワークの実現と主要機能の実現を。
もしWikiNotationやプラグインをまったく使えないWikiEngineを作ったら…
もし記法やプラグインをまったく使えないWikiEngineを作ったら…
テキストを記録するだけ。
ファイル名とテキストを与えると記録、ファイル名のみならテキストを出力。
これにプラグイン独自のデータと処理を加えて、プラグインごとに違うHTML出力ができるようにする。
中心はプラグインを作るためのAPI。
図 †
最低限必要なもの †
- コア部分
- 周辺部分
- ---------------------------------------------------------
Webアプリケーションのフレームワーク
フレームワーク/Webアプリケーションのみ。フレームワーク/WikiEngineはControlクラスから別途呼び出し。なのでフレームワーク/WikiEngineはこの図のModelにあたる。
→フレームワーク/Webアプリケーション
- ユーザー
システム外。 - メイン
非オブジェクト指向の手続き指向。 - クエリー(ユーザーから与えられたデータ)
グローバルなデータ。なのでシングルトン。
モデルによって書き換えられた後、ビューに参照される。 - モデル系
クエリーから入力(内部形式・独自形式、扱い方はモデル系クラス自身が知っている)、処理、保存(永続化)、クエリーに出力 - ビュー系
クエリーから入力(文字列)、それをHTMLなどのテンプレートに埋め込む。
→フレームワーク/Webアプリケーション
- -
HTMLを要求するのはフレームワーク/Webアプリケーションのほう。
WebアプリケーションはWikiEngineを3度呼ぶ。
- エントリーポイント
- フレームワーク/Webアプリケーション
WikiEngineオブジェクトを生成。 - フレームワーク/WikiEngine
WikiEngineオブジェクトを作る(だけ)。 - フレームワーク/Webアプリケーション
WikiEngineオブジェクトにリクエストを伝える(そのまま渡すのではなく、WikiEngineが理解できる形で) - フレームワーク/WikiEngine
自身の状態を変化させる。状態は永続化する。 - フレームワーク/Webアプリケーション
WikiEngineにHTMLを要求。 - フレームワーク/WikiEngine
HTMLを生成。 - フレームワーク/Webアプリケーション
HTMLにヘッダーを付けてWebページ化。
- ---------------------------------------------------------
Wikiエンジンのフレームワーク
→フレームワーク/WikiEngine
Webアプリ部分で言うモデル系のこと。
スキンはビュー系。
直接関連はしない。コントロールクラス経由で呼び出し。
でも、ビューがモデルを呼ぶこともあるかも。
決まりきっている部分。HTMLヘッダーとか、背景とか。多くのページが必要とする部分とか。ユースケース別にすることもない部分。
- -------------------------------------
クライアント側で動くものはUI周辺のみ。
最低限必要なもの †
- コア部分
- 周辺部分
コア部分 †
- データ変換
- 各WikiNotationクラスによる同型オブジェクト間の同一性の評価
- 各記法クラスによる同型オブジェクト間の同一性の評価
検索で使用。類似度を算出。 - 検索
- オブジェクトの永続化
- プラグインの使用
- 構造化ページ
- 代表とその決定方法
- エラーレベル
データ変換(WikiNotationクラス) †
開発時のアサーション違反はエラー、運用中は警告だけ。
WikiEngine/Error/Fatal[?]
- 排他制御
[Prog]参照
データ変換(記法クラス) †
テキスト→オブジェクト→HTML
オブジェクト→永続オブジェクト
どれもWikiNotationクラスの役目。
どれも記法クラスの役目。
周辺部分 †
特にWebアプリケーションとしてのWikiに必要なこと。
UI †
スキンに含まれるテンプレートと関連が深い。
最低限必要なUIだけ。
アカウント †
→利用者
- ---------------------------------------------------------
必要なときに必要としているクラスから呼び出される。
主にユースケースを表すコントロールクラスから。
スキン †
ページの一種。それがテンプレートになる。
スタイルシートや画像は普通に作ればいい。
UI †
最低限必要なUIだけ。
クラス †
アカウント †
→利用者
- ---------------------------------------------------------
必要なときに必要としているクラスから呼び出される。
主にユースケースを表すコントロールクラスから。
ページの構成 †
Wiki(サイト)─Entry(項目)─Side(見解)─Revision(版)
- Wiki
- WikiEngineのインスタンス
コード †
01 †
今使ってるPerlのほか、PHP、Microsoftの、Rubyも。
codeなにがしに投稿してみる。
- フレームワーク/Webアプリケーション
code*:357 - フレームワーク/WikiEngine
code*:362 - ページ、|…|…|、''…''
code*:364 code*:375 - 検索/クエリー
code*:375
検索/流れ[?]
:i/検索/流れ - 利用者
クラス定義とOpenID認証のサンプルだけで良い。
code*:??? code*:412
- -------
02 †
テスト用のUIを付けて…
http://wiki.pmint.name/proto/02/に設置して…
コードはhttp://wiki.pmint.name/のどこかに置いて。
コードはhttp://wiki.pmint.name/index.phpのどこかに置いて。