मेरी टीम एक WEB आधारित वित्त अनुप्रयोग विकसित कर रही है और एक सहकर्मी के साथ थोड़ी बहस हुई थी कि गणना कहाँ रखी जाए - विशुद्ध रूप से बैक-एंड में या कुछ को फ्रंट-एंड में भी रखें?
संक्षिप्त विवरण: हम फ्रंट-एंड के लिए जावा (ZK, स्प्रिंग) का उपयोग कर रहे हैं और बैक-एंड के लिए प्रगति 4gl। गणना जिसमें डेटाबेस से कुछ कट्टर गणित और डेटा शामिल हैं, बैक-एंड में रखे गए हैं, इसलिए मैं उनके बारे में बात नहीं कर रहा हूं। मैं उस स्थिति के बारे में बात कर रहा हूं जहां उपयोगकर्ता मूल्य X में प्रवेश करता है, यह तब मूल्य Y (स्क्रीन में दिखाया गया है) में जोड़ा जाता है और परिणाम क्षेत्र में दिखाया जाता है। शुद्ध और सरल jQuery-ish संचालन, मेरा मतलब है।
तो यहां सबसे अच्छा अभ्यास क्या होगा:
1) जावास्क्रिप्ट के साथ मान जोड़ें जो बैक-एंड और बैक में जाने से बचाता है और फिर बैक-एंड में "सेव पर" को वेरिफाई करता है?
2) सभी व्यापारिक तर्क को एक ही स्थान पर रखें - इसलिए मूल्यों को बैक-एंड में लाएं और वहां गणना करें?
3) सामने के अंत में गणना करें; फिर डेटा को बैक-एंड पर भेजें, उन्हें वहां मान्य करें, फिर से गणना करें और केवल तभी जब परिणाम मान्य और समान हों, उन्हें उपयोगकर्ता को प्रदर्शित करें?
४) कुछ और?
नोट: हम जावा में कुछ बुनियादी सत्यापन करते हैं, लेकिन अधिकांश अभी भी अन्य सभी व्यावसायिक तर्क के रूप में बैक-एंड में हैं।
डेटा की वृद्धि जो एक बैक-एंड में सब कुछ पुनर्गणना करके भेजी जाएगी, एक समस्या नहीं होगी (छोटे XML आकार; सर्वर और बैंडविड्थ उपयोगकर्ताओं द्वारा किए गए संचालन की बढ़ी मात्रा का सामना करेंगे)।