Nhóm của tôi đang phát triển một ứng dụng tài chính dựa trên WEB và có một chút tranh cãi với một đồng nghiệp, nơi giữ các tính toán - hoàn toàn ở phía sau hoặc giữ một số ở phía trước?
Giải thích ngắn gọn: Chúng tôi đang sử dụng Java (ZK, Spring) cho front-end và Progress 4gl cho back-end. Các tính toán liên quan đến một số dữ liệu và toán học khó tính từ cơ sở dữ liệu được lưu giữ ở phía sau, vì vậy tôi không nói về chúng. Tôi đang nói về tình huống người dùng nhập giá trị X, sau đó nó được thêm vào giá trị Y (hiển thị trên màn hình) và kết quả được hiển thị trong trường Z. Ý tôi là các hoạt động đơn giản và đơn giản của jQuery.
Vì vậy, những gì sẽ được thực hành tốt nhất ở đây:
1) Thêm các giá trị bằng JavaScript lưu từ đi đến back-end và sau đó xác thực chúng ở back-end "on save"?
2) Giữ tất cả logic kinh doanh ở cùng một vị trí - do đó mang các giá trị đến back-end và thực hiện các phép tính ở đó?
3) Thực hiện các tính toán ở mặt trước; Sau đó gửi dữ liệu đến back-end, xác thực chúng ở đó, thực hiện lại các phép tính và chỉ khi kết quả hợp lệ và bằng nhau, hiển thị chúng cho người dùng?
4) Cái gì khác?
Lưu ý: Chúng tôi thực hiện một số xác nhận cơ bản trong Java nhưng hầu hết trong số đó vẫn ở phía sau như tất cả các logic nghiệp vụ khác.
Tăng dữ liệu sẽ được gửi bằng cách tính toán lại mọi thứ trong back-end sẽ không thành vấn đề (kích thước XML nhỏ; máy chủ và băng thông sẽ chịu được lượng hoạt động tăng lên của người dùng).