- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- フレームワーク/WikiEngine へ行く。
- 1 (2009-08-30 (日) 11:16:03)
- 2 (2009-09-22 (火) 16:38:15)
- 3 (2009-09-22 (火) 16:53:24)
- 4 (2009-09-24 (木) 00:12:15)
- 5 (2009-09-24 (木) 00:20:53)
- 6 (2009-11-07 (土) 01:16:23)
- 7 (2009-11-13 (金) 02:07:45)
- 8 (2010-12-29 (水) 08:51:09)
- 9 (2011-01-10 (月) 23:45:18)
- 10 (2011-01-15 (土) 21:38:54)
- 11 (2011-01-15 (土) 21:53:45)
- 12 (2011-02-12 (土) 13:08:18)
- 13 (2011-03-02 (水) 11:30:49)
- 14 (2011-07-17 (日) 04:12:31)
- 15 (2011-12-14 (水) 01:29:17)
- 16 (2012-06-01 (金) 01:33:47)
- 17 (2012-06-01 (金) 05:09:05)
- 18 (2012-06-01 (金) 05:15:14)
- 19 (2012-06-01 (金) 05:31:34)
- 20 (2012-06-01 (金) 05:58:56)
- 21 (2012-06-01 (金) 06:00:17)
- 22 (2012-06-01 (金) 06:13:22)
- 23 (2012-06-01 (金) 06:17:55)
- 24 (2012-07-30 (月) 15:09:42)
- 25 (2012-09-20 (木) 06:45:29)
- 26 (2012-09-20 (木) 07:29:51)
- 27 (2013-01-28 (月) 07:20:28)
- 28 (2013-03-04 (月) 06:36:48)
- 29 (2013-03-04 (月) 12:41:52)
- 30 (2013-03-04 (月) 12:43:41)
- 31 (2013-03-05 (火) 04:39:50)
- 32 (2013-03-05 (火) 05:20:06)
- 33 (2013-03-07 (木) 15:50:44)
- 34 (2013-03-13 (水) 13:45:11)
- 35 (2013-03-20 (水) 22:35:35)
- 36 (2013-03-23 (土) 16:03:19)
- 37 (2013-04-16 (火) 18:19:10)
- 38 (2013-04-18 (木) 20:25:00)
- 39 (2014-02-24 (月) 21:11:10)
- 40 (2014-03-01 (土) 01:10:29)
ここで作っているWikiEngineについて。
既存のWikiEngineについては→ tag:解析
目次 † 
関連 † 
- :/ページを更新できるのは自身だけ
- :/ページ要素間の連携方法
- :/疑似言語とPerlでフレームワーク
- :/要素からWikiEngineインスタンスを起動可能
- :Done/SPAM対策
- :Done/データアクセスでページ要素を更新したい
- :Done/属性の継承法則
- :RenameLog/2009
- :RenameLog/2010
- :RenameLog/2013
- :RenameLog/2014
- :i/クエリーパラメーターはユースケースクラスのもの
- :i/プラグインで独自のシステムを作れるか
- :i/プロトタイピング
- :i/プロトタイピング/01
- :i/ログインはWebフレームワーク、ユーザー管理はWikiフレームワーク
- :i/利用者ページの下位に利用者設定を
- :i/状況依存のページ選択
- :t/Wiki
- API
- X
- fw/Wiki
- テンプレート
- フレームワーク
- フレームワーク/Webアプリケーション
- フレームワーク/Webアプリケーションでやること
- フレームワーク/WikiEngineでやること
- ページ
- ページ/権限
- 下位展開でやること
- 全てURIで
- 利用者
- 権限
フレームワーク/WikiEngine † 
利用者から与えられたデータをページ化して保存するもの。
利用者からの要求に応じてページを切ったり貼ったりしてから見せる。
ここで考えているWikiEngineは… † 
コア部分 † 
- WikiNotationを含むテキストをオブジェクト化する
- 個々のオブジェクトから(HTMLなどの)別形式を得る
- 各WikiNotationクラスによる同型オブジェクト間の同一性の評価
検索で使用。類似度を算出。 - オブジェクトの永続化
- プラグインの使用
周辺部分 † 
特にWebアプリケーションとしてのWikiに必要なこと。
参考 † 
思い付き † 
実装 † 
URLクエリーに置くデータ † 
URLに付けるデータはネット上で共通のもののみ。
個人領域のデータ、状況に左右されるデータは置かない。
URLはどれもパーマリンクにすること。
というわけで、
- 検索/クエリー
…はURLクエリーに含める。
「次」や「前」という表現は使わない † 
新/旧、大/小などにする。
ソート順が分かる表現に。
やること † 
データ変換 † 
テキスト→オブジェクト→HTML
オブジェクト→永続オブジェクト
もしWikiFormatやプラグインをまったく使えないWikiEngineを作ったら…
テキストを記録するだけ。
ファイル名とテキストを与えると記録、ファイル名のみならテキストを出力。
これにプラグイン独自のデータと処理を加えて、プラグインごとに違うHTML出力ができるようにする。
中心はプラグインを作るためのAPI。
アカウント † 
派閥 † 
派閥[?]
負荷軽減 † 
→負荷[?]
編集後の更新処理を分割。
ページを指定していないリクエストでは
…を返す。
というわけで、トップページを見せたいときはトップページを指定したリンクを作り、通常はページを指定しないリンクを使う。
これで、静的なページからでもWebブラウザーの履歴を操作することなく、最後に参照したページに戻れる。
URLクエリーに置くデータ † 
URLに付けるデータはネット上で共通のもののみ。
個人領域のデータ、状況に左右されるデータは置かない。
URLはどれもパーマリンクにすること。
というわけで、
- 検索/クエリー
…はURLクエリーに含める。
「次」や「前」という表現は使わない † 
新/旧、大/小などにする。
ソート順が分かる表現に。
やること † 
データ変換 † 
テキスト→オブジェクト→HTML
オブジェクト→永続オブジェクト
もしWikiFormatやプラグインをまったく使えないWikiEngineを作ったら…
テキストを記録するだけ。
ファイル名とテキストを与えると記録、ファイル名のみならテキストを出力。
これにプラグイン独自のデータと処理を加えて、プラグインごとに違うHTML出力ができるようにする。
中心はプラグインを作るためのAPI。
アカウント † 
派閥 † 
派閥[?]
負荷軽減 † 
→負荷[?]
編集後の更新処理を分割。
設計 † 
- ユースケースをモデルに入れる。
- ログインページの次はHTTP_REFERERにあるページ。
- ファイルはFlyweightであるべき。
- オブジェクトモデル上ではinclude.incのような機能を考慮しない。
include.incのような機能はデータコピーで実現。 - アクセスログはページの属性。
- 利用者はページにある情報を元に作られる。
- ページが他のページインスタンス宛に編集クエリーを作る。
- 検索はプラグイン化する。
名称 † 
クラス間のつながり † 
検索時、オブジェクト間のつながり † 
ページがHTML出力する時、オブジェクト間のつながり † 
ページとプラグイン † 
モデルはページ中心 † 
- ページ中心
- MVCのVとCは決まりきっている
Mはページとページに関連するクラス。プラグインにはあるかも知れないし無いかも知れない。
Cはフレームワークと各プラグインにある。
フレームワークが持つVのクラスは1つだけ。それ以外にはプラグインが独自に持つかも知れない。 - 要点はプラグインが持てる可能性
オブジェクトの生成 † 
- クラス名とインスタンスの対応はFlyweightFactoryが決める。
"WikiEngine"というクラスについて。
ウィキエンジンを表すクラス。
名前が決まり次第、クラス名も変更。
- ユースケースをモデルに入れる。
- ログインページの次はHTTP_REFERERにあるページ。
- ファイルはFlyweightであるべき。
- オブジェクトモデル上ではinclude.incのような機能を考慮しない。
include.incのような機能はデータコピーで実現。 - アクセスログはページの属性。
- 利用者はページにある情報を元に作られる。
- ページが他のページインスタンス宛に編集クエリーを作る。
- 検索はプラグイン化する。
名称 † 
クラス間のつながり † 
検索時、オブジェクト間のつながり † 
ページがHTML出力する時、オブジェクト間のつながり † 
ページとプラグイン † 
モデルはページ中心 † 
- ページ中心
- MVCのVとCは決まりきっている
Mはページとページに関連するクラス。プラグインにはあるかも知れないし無いかも知れない。
Cはフレームワークと各プラグインにある。
フレームワークが持つVのクラスは1つだけ。それ以外にはプラグインが独自に持つかも知れない。 - 要点はプラグインの拡張性(可能性)
オブジェクトの生成 † 
- クラス名とインスタンスの対応はFlyweightFactoryが決める。
コード † 
プロトタイピング[?]の実装。
擬似言語 † 
[フレームワーク/Webアプリケーションから呼ばれて…]
- セッションデータを受け取る。
- クエリーを処理する。
- HTMLを返す。
Perl † 
あとはX::Pageの永続化を。
プロトタイプではFlyweightFactoryを実装しない。
X::Pageのインスタンスは1つか2つでいい。
プロトタイピング[?]の実装。
擬似言語 † 
[フレームワーク/Webアプリケーションから呼ばれて…]
- セッションデータを受け取る。
- クエリーを処理する。
- HTMLを返す。
Perl † 
あとはX::Pageの永続化を。
プロトタイプではFlyweightFactoryを実装しない。
X::Pageのインスタンスは1つか2つでいい。