私のチームはWEBベースの財務アプリケーションを開発していますが、同僚と計算をどこで行うべきかという議論が少しありました。純粋にバックエンドで行うのか、それともフロントエンドで行うのですか?
簡単な説明:フロントエンドにはJava(ZK、Spring)を使用し、バックエンドにはProgress 4glを使用しています。筋金入りの数学とデータベースからのデータを含む計算はバックエンドに保持されるため、私はそれらについて話していません。ユーザーが値Xを入力し、値Yに追加され(画面に表示)、結果がフィールドZに表示される状況について話しています。純粋で単純なjQueryのような操作、つまり。
ここで、ベストプラクティスは次のとおりです。
1)JavaScriptを使用して値を追加し、バックエンドに行ったり戻ったりするのを防ぎ、バックエンドで「保存時」にそれらを検証しますか?
2)すべてのビジネスロジックを同じ場所に保持します。したがって、値をバックエンドにもたらし、そこで計算を行いますか?
3)フロントエンドで計算を行います。次に、データをバックエンドに送信し、そこでデータを検証し、計算を再実行します。結果が有効で等しい場合にのみ、ユーザーに表示しますか?
4)他に何か?
注:Javaでいくつかの基本的な検証を行いますが、ほとんどは他のすべてのビジネスロジックと同様にバックエンドにあります。
バックエンドのすべてを再計算することで送信されるデータの増加は問題になりません(XMLサイズが小さい。サーバーと帯域幅はユーザーの操作量の増加に耐えます)。