2010-11-25 17 views
0

---(編集) -サービス層での休止/春の検証

フロントエンドで検証しても、サービス層で検証する必要がありますか?

たとえば、strutsにバリデーションがあるので、バリデーションをたくさん行うことができます。 (私はJavaスクリプトの検証を意味するものではありません。)

-

あなたはすでにフロントエンドでの検証を持っているにもかかわらず、あなたのサービス層にバリや春の検証を休止状態使用していますか?

(フロントエンドの検証が休止または春1である必要はありません)

+0

これは本当に質問ではありません – skaffman

+0

申し訳ありませんが、私は正しく尋ねていません。 – feiroox

答えて

1

一貫性のあるデータは、Enterpriceアプリケーションで最も重要なデータの1つです!

はい:フロントエンドとサービスレイヤーで2回確認する必要があります。弊社のWebアプリケーションでは

我々は異なるレベルで異なるチェックを持っている: (私は一貫性のない小切手の話ではないのです、私は粒度や小切手の範囲について話しています。)

    inputfieldsの
  1. Javaスクリプトチェック(最大長さ、空ではない...)
  2. サーバー側のWebコントローラで同じチェックが行われ、さらに複雑なチェックが行われます。
  3. アプリケーションロジックを壊す重要な(ときには複雑な)制約が、エンティティとサービス
  4. データベースが簡単にチェックできるもの(null以外、forein key、unique)は、データベースの制約によってチェックされます。

IHOすべてとすべての場所をチェックするのが最良ですが、これは不可能です。だから、何を確認するか一貫したポリシーが必要です。このポリシーは、開発しているアプリケーションの種類によって大きく異なります。

0

あなたの質問は十分に固有ではない、すなわち、それは(それが世論調査の多くはである)1つの問題を解決するために見ていません。

"フロントエンドで検証してもサービス層で検証する必要がありますか?"というより具体的な質問に答えるには、答えは絶対です。ほぼすべてのフロントエンド検証、特にWebアプリケーションの検証はバイパスできます。あなたはサービスが一貫していることを保証するために適切な検証を実装する必要があります。また、Javascriptのチェックのようなユーザー空間での検証に頼るべきではありません。

UPDATE:コードのフロントエンド(ディスパッチャ/コントローラ)とサービスレイヤの間の検証を決定するとき、ハードと高速のルールはないと言いたいと思います。おそらく、私たちが受け取る入力がフロントエンドで合理的であることを確認し、サービス層でのドメインレベルの検証を行います。

0

私たちはフロントフレームワークとしてウィッケットと組み合わせて使用​​しました。それは我々が使用して問題を解決し

ビジネスロジックに対して、検証整数

  • である:例えば、

    1. 入力の検証:あなたは二段階で検証する必要があることを考慮しなければなりませんwicket内で検証するビジネス検証。したがって、コードを2回書く必要はありません。

  • 0

    Hibernate Validatorを使用して、すべての検証をモデルに保存することを強くお勧めします。モデルが有効になったことで、Oopsのカプセル化が向上しました。

    関連する問題