何をするかを表すクラス。利用者はこれを指定することでシステムを操作する。
権限判定を行なうのはここ。独自の権限判定を要する場合はユースケースを分ける必要があるということ。


PukiWikiのcmdにあたるものがユースケースMediaWikiでならaction.

PukiWikiのcmd/pluginにあたるものがユースケースMediaWikiでならaction.

実装はX/Usecase[?]. MVCのControllerクラス。

実装はX/Usecase[?]. MVCのController(コントローラー)クラス。
自身にあったMVCのViewクラスを呼ぶ。

ユースケース名にはステップ番号が付く。register_user.3など。

ビューを呼ぶのはGETリクエストのみ。他のサーバー側に副作用を及ぼすリクエストにはビューを呼ぶ代わりにリダイレクト。副作用を与えずにビューを呼ぶだけのユースケースリダイレクトする。一般的なリロード対策。

ステップ Edit

ステップ分割 Edit


1回のリクエストで終わらないユースケースは複数ステップで構成。ステップを進むか他のユースケースに移るかはリクエスト次第。ということはWikiに書かれているリンク次第。
クライアント側だけで対処するので、ステップ分割はしない。REST APIアクセスと、クライアント側コードを返すケースだけ。

ユースケースビュー Edit

ユースケースはMVCのController. ビューはMVCのView.

ビューを呼ばないユースケース(のステップ)と、ビューを呼ぶユースケース(のステップ)。どれをどういう順番で呼ぶかはリクエスト次第。

ユースケース+ステップで最上位のコードが決まる。

例えば、編集ステップ1…編集フォーム生成、編集ステップ2…投稿受け付け・ビューなし、編集ステップ3…閲覧ビューリダイレクト

何を返すかは別途指定 Edit


→ :i/選べるビュー[?]

ユースケースビューを別々に指定。

ユースケース編集のステップ2にページ名NotationTextを付けて要求、レスポンスはリダイレクトで同じページの閲覧ビュー編集ビューを要求するとか。それぞれにパラメーターが必要。ユースケース名/レスポンス名でも必要なパラメーターが異なる。パラメーターを知っているのはユースケース。あるユースケースを呼ぶためのリンクを作るときはそのユースケースに問い合わせる。プラグイン呼び出しのリンクを作るならプラグイン内のユースケースクラスに問い合わせて、パラメーター一覧をもらう。それを書き換えてリンク生成クラスに渡す。UIの場合、利用者が文字列でリンクを作るときでも問い合わせ先は同じ。得られるのは文字列化したパラメーター一覧か、フォームに与えられる形式で。→ :i/プラグインのパラメーターを調べる方法

でもを揃えるために、ビューは必ずユースケースから呼ぶこと。ビューを呼ぶだけのユースケース(のステップ)を作る。

指定できるのはユースケースと(ビューを呼ぶ)ユースケース…つまりユースケースだけということになる。

:/ユースケースで何を返すかは別途指定 Edit

いろいろなユースケース Edit

権限(錠)別になる。

一時的なページ Edit

ページ/要素の公開API(WebAPI)を呼び出す方法。ページ/要素を直接呼びたいときに使う。実装では一時的なページに特定の要素を配置して呼び出す。→:埋め込み

一時的ページページページ/要素ページ/属性を埋め込んで(これが永続的なページを読み込むことに相当する)そのページをいずれかのビューに渡してレンダリング。
というユースケース→:jot
ページ/要素プラグインごとにユースケースを用意しなくていい。実装ではページに記述されたときと処理を統合できる。

:i/ユースケーススコープ Edit

:i/何に錠をかけるのか[?] Edit

:i/権限と拒否[?] Edit

:/何に錠をかけるのか Edit

:/権限と拒否 Edit


権限判定をするなら拒否判定も必要。

:i/ユースケースチェイン[?] Edit


複数のユースケースを一度に呼ぶとレスポンスも一度に返ってくる…ように見えるビュー

下位展開と同種でいい。「複数のリクエストをサーバーに送る」ためのビューを返すだけ。

APIアクセスとビューにリクエストに分けるので、もういいユースケース間でデータ共有すべきでもないので、やるなら「やることを選べるユースケース」を作るべき。

:/ユースケースチェイン Edit

URLクエリーをページ化するユースケース Edit

ページ/要素#m56b6643