- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- :i/プロトタイピング へ行く。
- 1 (2010-11-21 (日) 14:30:48)
- 2 (2010-12-27 (月) 20:10:43)
- 3 (2011-03-24 (木) 18:31:00)
- 4 (2011-04-07 (木) 08:04:26)
- 5 (2011-04-07 (木) 08:10:05)
- 6 (2011-04-07 (木) 08:11:11)
- 7 (2011-04-07 (木) 19:59:56)
- 8 (2011-04-07 (木) 20:15:22)
- 9 (2011-04-07 (木) 20:32:47)
- 10 (2011-04-07 (木) 20:49:58)
- 11 (2011-04-08 (金) 05:31:08)
- 12 (2011-04-08 (金) 13:47:44)
- 13 (2011-04-13 (水) 05:21:22)
- 14 (2011-04-13 (水) 07:40:12)
- 15 (2011-04-16 (土) 07:22:53)
- 16 (2011-04-20 (水) 06:07:18)
- 17 (2011-04-27 (水) 10:07:28)
- 18 (2011-04-27 (水) 19:35:55)
- 19 (2011-04-29 (金) 13:13:08)
- 20 (2011-07-14 (木) 14:43:57)
- 21 (2011-07-14 (木) 15:36:08)
- 22 (2011-07-16 (土) 21:17:15)
- 23 (2011-07-16 (土) 21:30:05)
- 24 (2011-07-19 (火) 19:35:35)
- 25 (2011-07-19 (火) 19:45:44)
- 26 (2011-07-20 (水) 17:20:14)
- 27 (2011-07-21 (木) 10:19:36)
- 28 (2011-07-21 (木) 14:04:31)
- 29 (2011-07-21 (木) 22:33:49)
- 30 (2011-07-21 (木) 22:42:13)
- 31 (2011-07-23 (土) 02:15:52)
- 32 (2011-07-26 (火) 00:00:26)
- 33 (2011-07-27 (水) 21:05:52)
- 34 (2011-07-27 (水) 21:07:17)
- 35 (2011-08-24 (水) 23:43:52)
- 36 (2011-08-25 (木) 02:54:58)
- 37 (2011-09-08 (木) 04:50:45)
- 38 (2011-09-08 (木) 15:09:27)
- 39 (2011-10-02 (日) 15:27:42)
- 40 (2011-10-24 (月) 17:40:57)
- 41 (2011-10-25 (火) 01:43:19)
- 42 (2011-10-25 (火) 01:50:01)
- 43 (2011-10-28 (金) 09:06:36)
- 44 (2011-11-02 (水) 23:45:34)
- 45 (2011-11-06 (日) 00:43:36)
- 46 (2011-12-09 (金) 11:29:42)
- 47 (2011-12-09 (金) 11:52:47)
- 48 (2011-12-09 (金) 11:59:14)
- 49 (2011-12-14 (水) 01:29:17)
- 50 (2011-12-14 (水) 20:16:57)
- 51 (2011-12-18 (日) 03:42:28)
- 52 (2011-12-27 (火) 18:17:13)
- 53 (2011-12-28 (水) 03:29:53)
- 54 (2012-01-08 (日) 03:46:50)
- 55 (2012-02-12 (日) 17:43:20)
- 56 (2012-03-23 (金) 03:07:15)
- 57 (2012-03-24 (土) 02:33:38)
- 58 (2012-05-31 (木) 20:30:06)
- 59 (2012-06-01 (金) 06:16:49)
- 60 (2012-06-14 (木) 09:16:44)
- 61 (2012-06-25 (月) 23:48:04)
- 62 (2012-07-29 (日) 20:27:52)
- 63 (2012-07-30 (月) 01:22:26)
- 64 (2012-07-30 (月) 17:42:39)
- 65 (2012-07-31 (火) 00:55:39)
- 66 (2012-08-03 (金) 13:58:41)
- 67 (2012-08-03 (金) 14:09:06)
- 68 (2012-08-03 (金) 14:22:56)
- 69 (2012-08-04 (土) 06:01:00)
- 70 (2012-08-04 (土) 06:28:33)
- 71 (2012-08-04 (土) 06:30:10)
- 72 (2012-08-08 (水) 15:26:38)
- 73 (2012-08-08 (水) 16:35:41)
- 74 (2012-08-19 (日) 02:13:39)
- 75 (2012-08-19 (日) 02:41:24)
- 76 (2012-08-25 (土) 01:19:54)
- 77 (2012-08-27 (月) 20:01:17)
- 78 (2012-09-09 (日) 06:51:00)
- 79 (2012-09-09 (日) 06:56:35)
- 80 (2012-09-09 (日) 07:25:59)
- 81 (2012-09-09 (日) 08:05:56)
- 82 (2012-09-10 (月) 01:46:29)
- 83 (2012-09-10 (月) 04:04:11)
- 84 (2012-09-20 (木) 06:49:03)
- 85 (2012-10-30 (火) 03:38:50)
- 86 (2012-11-04 (日) 23:31:07)
- 87 (2012-11-07 (水) 06:35:35)
- 88 (2012-11-07 (水) 06:38:36)
- 89 (2012-12-09 (日) 07:43:33)
- 90 (2012-12-09 (日) 07:53:31)
- 91 (2012-12-09 (日) 08:26:55)
- 92 (2012-12-09 (日) 08:46:09)
- 93 (2012-12-09 (日) 09:07:46)
- 94 (2013-02-07 (木) 13:06:39)
- 95 (2013-02-07 (木) 14:13:45)
- 96 (2013-02-07 (木) 17:48:41)
- 97 (2013-02-07 (木) 18:53:49)
- 98 (2013-02-07 (木) 20:39:28)
- 99 (2013-02-07 (木) 22:44:58)
- 100 (2013-02-08 (金) 06:23:20)
- 101 (2013-02-08 (金) 21:18:14)
- 102 (2013-02-10 (日) 01:44:32)
- 103 (2013-02-21 (木) 02:47:56)
- 104 (2013-03-03 (日) 03:36:07)
- 105 (2013-03-03 (日) 03:57:29)
- 106 (2013-03-03 (日) 04:14:22)
- 107 (2013-03-03 (日) 04:17:56)
- 108 (2013-03-03 (日) 05:29:19)
- 109 (2013-03-03 (日) 05:45:56)
- 110 (2013-03-03 (日) 05:52:32)
- 111 (2013-03-05 (火) 04:03:15)
- 112 (2013-03-06 (水) 03:27:09)
- 113 (2013-03-06 (水) 12:38:20)
- 114 (2013-03-08 (金) 08:49:33)
- 115 (2013-03-13 (水) 18:00:21)
- 116 (2013-03-14 (木) 04:45:36)
- 117 (2013-03-15 (金) 11:43:18)
- 118 (2013-03-20 (水) 22:35:51)
- 119 (2013-03-25 (月) 00:48:55)
- 120 (2013-04-04 (木) 23:03:15)
- 121 (2013-04-09 (火) 16:12:25)
- 122 (2013-04-16 (火) 18:16:52)
- 123 (2013-04-16 (火) 18:27:27)
- 124 (2013-04-16 (火) 18:30:07)
- 125 (2013-04-16 (火) 21:34:33)
- 126 (2013-04-17 (水) 00:36:20)
- 127 (2013-04-17 (水) 02:33:47)
- 128 (2013-04-17 (水) 03:14:32)
- 129 (2013-04-18 (木) 20:20:20)
- 130 (2013-04-18 (木) 21:06:03)
- 131 (2013-04-18 (木) 21:15:41)
- 132 (2013-04-18 (木) 21:20:28)
- 133 (2013-04-19 (金) 11:05:00)
- 134 (2013-07-08 (月) 03:56:37)
- 135 (2014-02-20 (木) 05:45:20)
- 136 (2014-02-20 (木) 09:10:13)
- 137 (2014-02-25 (火) 05:50:34)
- 138 (2014-11-03 (月) 03:02:22)
- 139 (2016-02-27 (土) 03:26:25)
- 140 (2016-02-27 (土) 06:31:21)
- 141 (2016-07-02 (土) 15:38:51)
- 142 (2021-01-01 (金) 18:41:02)
- 143 (2021-03-15 (月) 22:34:06)
- 144 (2021-03-17 (水) 08:05:19)
- 145 (2021-03-17 (水) 11:43:20)
実装したものと実装のための情報。
このWikiを洗練させるための試作。
http://x.pmint.name/
- :i/プロトタイピング/01
- :i/プロトタイピング/01/検索
- :i/プロトタイピング/02
- :i/プロトタイピング/03
- :i/プロトタイピング/04
- :i/プロトタイピング/05
- :i/プロトタイピング/p05
- :i/プロトタイピング/Snippet
- :i/プロトタイピング/Snippet/AutoloadAccessor
- :i/プロトタイピング/Snippet/Mergeable.cs
- :i/プロトタイピング/Snippet/Nestable.cs
- :i/プロトタイピング/Snippet/NotNestable.cs
- :i/プロトタイピング/Snippet/NotNestables.cs
- :i/プロトタイピング/Snippet/Ol.cs
- :i/プロトタイピング/Snippet/PageElementMerge.cs
- :i/プロトタイピング/Snippet/PageElementMerge2.cs
- :i/プロトタイピング/Snippet/Tokenize0.cs
- :i/プロトタイピング/Snippet/ToWikitext.cs
プロトタイピング05 †
資料 †
やること †
順不同パス †
まだ紹介してない。
「はてなブックマークのタグ絞り込みのように順不同」
multi-gram→ページ名 †
プレビュー †
- PagenameのWiki(-name)部分補完
下位展開 †
自動リンク †
リンク規則、danglingリンク規則、ページ名(フルパス)→内部名
ページ名…Pagename
自動リンク…下位展開を考慮。一部を#化してリンク。
自動リンク規則…PlainsにAutoLink追加→HTML化のときに他のPlains系と異なる出力になるので不可。Notations系として実装するならフレームワークにPatternを提供しないと。
ページ作成記法、ページ編集記法…パラメーターはデフォルト値。作成は状況により編集に、編集は状況により追記になる。
自動リンク規則は相対パス→絶対パス変換に一手間加えたもの。
プレビューとタイムマシンとサブセット †
プレビューWiki
Wiki(-name)の補完ルールを変える。Pagenameクラスで対応すればいいだけ。
リクエスト-レスポンス間にWiki(-name)は一定。
存在しないページはデフォルトWikiから探す。デフォルトWikiにも存在しないなら、プレビュー用Wikiのページが存在しないときの処理。
タイムマシンWiki
自分が見てきた履歴。ページ/履歴は(同じ見解を見てる)みんなの履歴。
Revisionの補完ルールを変える。Pagenameクラスで対応すればいいだけ。
リクエスト-レスポンス間にRevisionは一定。
存在しないページは存在しないものとする。
サブセットWiki
Element単位で含まれるページが変わる。各Elementがページセットを扱う必要がある。
ほか †
- これまでのプロトタイプでやり残していること
プラグイン †
名称「PageElement」または「Element」。「Notation」は記法なのでRegexを使って定義するもの。「プラグイン」は実装の仕方なので使わない。
プラグイン側で定義できるものはクラス定義で †
データ変換 †
テキスト→オブジェクト→HTML
オブジェクト→永続オブジェクト
もしWikiNotationやプラグインをまったく使えないWikiEngineを作ったら…
テキストを記録するだけ。
ファイル名とテキストを与えると記録、ファイル名のみならテキストを出力。
これにプラグイン独自のデータと処理を加えて、プラグインごとに違うHTML出力ができるようにする。
中心はプラグインを作るためのAPI。
アカウント †
派閥 †
派閥[?]
プラグインは既存クラスの「プラグイン版」 †
- Usecaseプラグイン
Plugin/Usecaseを実装。
SubUsecaseも使うならクラス名自由。
フレームワークは関わらないので。リクエストの任意のパラメーターを使っていい。 - PageElementプラグイン
Plugin/PageElementを実装。
クラス †
- X(Wiki)
フレームワーク/WebアプリケーションのComponentにあたる。
クラス名は…
View::ユースケース名::リクエスト名、Control::ユースケース名
- PageElements
記法別クラスの上位クラス。
記法別クラス(Notations)はWikiTextを読んで自身が理解できる記法だけオブジェクト化する。
WikiTextの先頭からではなく、記法別にオブジェクト化。
図 †
フレームワーク間の関係 †
HTMLを要求するのはフレームワーク/Webアプリケーションのほう。
WebアプリケーションはWikiEngineを3回呼ぶ。
- エントリーポイント
- フレームワーク/Webアプリケーション
Xオブジェクトを生成。 - フレームワーク/WikiEngine
Xオブジェクトを作る(だけ)。 - フレームワーク/Webアプリケーション
Xオブジェクトにリクエストを伝える(そのまま渡すのではなく、変数の形で) - フレームワーク/WikiEngine
自身の状態を変化させる。状態は永続化する。 - フレームワーク/Webアプリケーション
XにHTMLを要求。 - フレームワーク/WikiEngine
HTMLを生成。 - フレームワーク/Webアプリケーション
HTMLにヘッダーを付けてWebページ化。
Wiki、Entry、Side、Revision †
いずれもPageクラスのインスタンス名。
ただし、実体があるのはRevisionだけ。その名を変えたのがEntry、Side。
WikiはEntryの構造体。
ルートページから始まるツリー構造。
各Entryもそれぞれツリー構造。
つまりツリーの要素からまたツリーが始まる2段ツリー構造。
エラーレベル †
- 利用者向け情報 Info
不正なリクエストなど。ページのメッセージ欄に出力。
X/Error/Info[?] - 警告 Warning
デバッグ用ログ出力と管理者グループ宛メールに出力。
処理続行。
X/Error/Warning[?] - 致命的エラー Fatal
処理中断。
開発時のアサーション違反はエラー、運用中は警告だけ。
X/Error/Fatal[?]
排他制御 †
更新コマンドのキューイング。
キューと要素の関係。
キュー→ファイル(名前順)
要素→永続化されたCommandオブジェクト。
ファイルロックは…PageFactoryが永続化されたオブジェクトを復帰/保存するときと、オブジェクトが自身の関連ファイル(他のオブジェクトの所有物でないファイル)を操作するときくらい。
モデル系クラスでは自分で自身を書き換える。他のクラスを扱うのはPageFactoryくらい。
Componentの使い方 †
- WikiEngine(の代表的なクラス)を1つのComponent(MVCセット)にする
WikiEngine内部ではクラス間はWikiNotationで関連するので。似ているけど別の仕組み。
UsecaseやRequest、Query(検索/クエリーではない)もWikiEngineの一部。Componentの<<control>>や<<model>>部分になる。
WikiEngineの全クラスをComponentにしなくていい。フレームワーク/Webアプリケーションと関わりのあるクラスだけComponentを継承。 - サイトのグローバルナビを1つのComponentにする
ASP.NETを使うなら †
ViewとControllerはASP.NET MVCのもの。
非ASP.NET MVC。Wiki - View(.aspx) - Controller。Viewはマスターページのようなものを1つだけ。
プラグイン無し。ControllerでReadなどを実装。というかControllerがプラグインのようなもの。
フレームワーク/WebアプリケーションはASP.NETと競合するので後回し。
フレームワーク/WikiEngine以上を作る。
実装からTips作成 †
実装からTips作成、よりよいコードのヒント集め。
実装以外にも、アイデア、方式、UIなどでも。