谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

バリデーションを考える

S2PresentationのSSRに向けて、考えている事をまとめて&少しずつ深めておく。


ちなみに、S2PresentationとS2Persistenceって、
字面似てるし、略してもS2PreとS2Perでソックリすぎるんで、
S2MVCとかS2ORMでよくね?


名前づけ重要、少しは考えれ > 俺


さて、
プレゼンテーションフレームワークの責務って、言ってしまえば

  • メソッドコール
  • バリデート
  • コンバート

ぐらいしかないと思います。
もうちょっと付け加えても、

  • ビューの表示
  • 遷移(ディスパッチ)
  • 値のバインド

ぐらい。


まずは、対象をこの辺りに絞って考えていきたいと思います。


で、最初に考えたいのが、バリデータ。
こないだ、いくつかのFWでバリデーション機能を整理してみたら
S2JSFのバリデーションは、かなり貧弱だったことに気付いてショックを受けました。

  • 複数フィールドバリデーションが面倒(一応、S2AnywhereValidatorでカバー)
  • 「複数項目のうち、いずれかが入力されていなければNG」を記述できない
  • 押したボタンによるバリデーション切り替えができない(1.1系なら出来るらしい)
  • クライアントサイドバリデーションができない


というわけで、
この辺りは、全て対応できるようにしたいですね。


後は、バリデーションをどこに記述するか。


私は画面にバリデーションがある方が好きなのですが
(なので、<p:validator>タグに賛成)
完璧なPOHPを求める人には不人気ですね。


ちょっと整理すると、

  • HTML
    • ○ : HTMLを見れば、バリデーションが分かる
    • × : 複数画面に同じような記述をする場合が多い
  • Pageクラス
    • ○ : HTMLに余計なタグを埋め込まなくて良い
    • × : 結局は複数画面に同じような記述をする
  • Dto(ActionForm)
    • ○ : Dtoを使う場合は共通的にバリデーションできる
    • × : 画面やボタンによってバリデーションを切り替えづらい(ボタンIDをDTOにまで記述するのって、やりすぎじゃね?)
  • 定義ファイル
    • ○ : 仕様書から一気に生成できる
    • × : 画面やPageクラスを見てもバリデーションが分からない(論理的に、距離が遠い)

というところ。


まぁHTMLに記述できれば良いじゃん、と思いますけどね。
完璧なPOHPを求める場合には、Mayaa風に、別ファイルに書ければ嬉しいのかも。
実際、一つ前のエントリーに書いたように、別ファイルにしたいこともあるし。


今は、とりとめもない感じですが
ひとまず、ここまで。