バックエンドとフロントエンドのフレームワークで使用するバリデーションロジックを同期させるにはどうすればいいですか？


あくまでバックエンドフレームワークとフロントエンドフレームワーク全般の事としてこのような理由でバリデーションをバックとフロントの両方で行いたいです

  * バックエンド：フロントエンドのチェックはクライアントが改ざんできるのでバックエンドでも確認したい
  * フロントエンド：バックエンドに送信してるとテンポが悪い。送信してもらってからバリデーションエラーが出るのはユーザー体験が悪い

案として入力イベントが起こる旅にajaxで、バックエンドのバリデーションロジックを呼び出すという案がでました。ただ一々サーバーとの通信が発生することになるせいで遅くなることがあり、ユーザー体験が損なわれることもありました。できればバリデーションロジックはフロントエンドフレームワークに組み込み、ユーザーの入力に対して即座にバリデーションチェックを行いたいです

ただそれぞれのフレームワークに個別にバリデーションロジックを書くと、お互いのロジックが開発時の手違いで矛盾してしまうことがあり効率的ではない面が大きかったです  
そのためバックエンドとフロントエンドのバリデーションロジックをどうにかして共有できるような仕組みがないか知りたいです

そこで質問です  
バックエンドとフロントエンドのフレームワークでバリデーションロジックを共有できるようなアーキテクチャやライブラリや何等かの形式はありますか？

よろしくお願いします。




あるかもしれませんがそこまで便利なものではないと思います。

  * フロントとバックエンドでは求められるバリデーションが異なる
  * フロントとバックエンドの言語が同一でないとロジックが共用できない(共用できるのは桁数とかの単純な条件に限定される)

> お互いのロジックが開発時の手違いで矛盾してしまう

バリデーションを共用できたとしても他のところで問題が出るので、こちらの根本をドキュメントとかテストとかの観点で解決したほうがよいように思います

