ทีมของฉันกำลังพัฒนาแอพพลิเคชั่นทางการเงินบนเว็บและมีข้อโต้แย้งกับเพื่อนร่วมงานที่จะทำการคำนวณ - แบ็คเอนด์หมดจดหรือเก็บฟรอนท์เอนด์ไว้บ้างไหม?
คำอธิบายสั้น ๆ : เราใช้ Java (ZK, Spring) สำหรับ front-end และ Progress 4gl สำหรับ back-end การคำนวณที่เกี่ยวข้องกับคณิตศาสตร์ไม่ยอมใครง่ายๆ & ข้อมูลจากฐานข้อมูลจะถูกเก็บไว้ในส่วนท้ายดังนั้นฉันไม่ได้พูดถึงพวกเขา ฉันกำลังพูดถึงสถานการณ์ที่ผู้ใช้ป้อนค่า X จากนั้นจะเพิ่มค่า Y (แสดงในหน้าจอ) และผลลัพธ์จะปรากฏในฟิลด์ Z การดำเนินการ jQuery-ish ที่เรียบง่ายและบริสุทธิ์ฉันหมายถึง
ดังนั้นสิ่งที่จะเป็นแนวปฏิบัติที่ดีที่สุดที่นี่:
1) เพิ่มค่าด้วย JavaScript ที่บันทึกจากการไปที่ส่วนหลังและส่วนหลังจากนั้นตรวจสอบความถูกต้องที่ส่วนท้าย "ในการบันทึก"?
2) รักษาตรรกะทางธุรกิจทั้งหมดไว้ในที่เดียวกัน - นำค่าไปยังส่วนหลังและทำการคำนวณที่นั่น?
3) ทำการคำนวณในส่วนหน้า; จากนั้นส่งข้อมูลไปยังส่วนหลังตรวจสอบความถูกต้องที่นั่นทำการคำนวณอีกครั้งและหากผลลัพธ์นั้นถูกต้องและเท่าเทียมกันแสดงให้ผู้ใช้เห็นหรือไม่
4) มีอะไรอีกไหม?
หมายเหตุ: เราทำการตรวจสอบความถูกต้องเบื้องต้นใน Java แต่ส่วนใหญ่ยังอยู่ใน back-end เช่นเดียวกับตรรกะทางธุรกิจอื่น ๆ ทั้งหมด
การเพิ่มข้อมูลที่จะถูกส่งโดยการคำนวณใหม่ทุกอย่างใน back-end จะไม่มีปัญหา (ขนาด XML เล็กเซิร์ฟเวอร์และแบนด์วิดท์จะทนต่อจำนวนการดำเนินการที่เพิ่มขึ้นของผู้ใช้)