【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

CafeWiki2 - *しこしこと開発がすすんでいます。

目次

しこしこと開発がすすんでいます。

前作ってたCafeWikiはスパゲティになってしまったので 本格的にOOで設計、実装してます。 設計部分の骨格が決まりつつあるので、このページを書き換えます。

開発方針

CGIとして動くようにする。 (いずれは、mod_perlとかのCGIエミュレート環境にも対応する)

Perl5を使って、オブジェクト指向で作る。 CGIなくせにMVCパターンや各種デザインパターンを利用。

全機能をパラグラフとして実装する。 パラグラフ開発者にはCGI開発用のフレームワーク、Cafe::WebKitを提供。 Cafe::WebKit::Paragraphを継承するだけであんまり悩まずに 追加のパラグラフが書けるようにする。

Cafe::WebKitについて

 CafeLet JavaでいうとHttpServletに対応する、基本的なクラス。ただしスレッド化はされない。
  <>---- Request
  <>---- Response
 CafeBean CafeLetから利用するロジック部分
 Paragraph パラグラフのスーパークラス
  ----|> CafeLet
 ParagraphBean パラグラフから利用するロジック部分
  ----|> CafeBean
 Response HTML::Templateの扱いを容易にする
  ----|> Html::Template
 Request CGI::Liteの扱いを容易にする
  <>---- Session
  ----|> CGI::Lite
 Session セッション
  <>---- Apache::Session::File
 Cookies クッキー
  <>---- CGI::Cookie

MVCにあてはめるCafe::WebKit

Model
CafeBean?が担当する。主にParagraphクラスを継承したクラスと、そのBeanが担当する。
View
HTMLテンプレートが担当する。HTML::Templateを隠蔽したResponseクラスからのみ操作可能。
Controller
CafeLet?が担当する。

パラグラフに関する部分のアーキティクチャ

サーブレットと異なり、各CafeLet?及び各パラグラフは、 必要になったタイミングで実行時にuseされ、作成される。 これはCGIリクエスト毎に全てのパラグラフを読み込むと実行の開始が遅くなる ためである。 しかし、このアーキティクチャは本来推奨されないものであるため、いくつかの弊害も含む。 例えば、パラグラフが利用するモジュールのBEGIN・ENDブロックは 意図したように動作しないかもしれない。

Wikiパラグラフ

Wikiパラグラフの仕様は未定。 なるべくYukiWiki2互換にするつもり。 現在はスタブ用のパラグラフで開発をしている。

コメント

(Too many spams ... embedded comments are not allowed now, sorry.)