दिलचस्प पोस्ट
आईओएस 7: MPMusicPlayerController वॉल्यूम बहिष्कृत। डिवाइस के वॉल्यूम को अब कैसे बदला जाए? समापन मूल्यों को संचय करनाहैंडलर्स – स्विफ्ट जावास्क्रिप्ट में साहचर्य सरणी / हैशिंग कैसे करें क्यों नहीं मैं res.json को कॉल इनलाइन कर सकते हैं? एक वेबसाइट पर PHP स्क्रिप्ट से जावा क्लास फ़ाइल चलाएं एचटीएमएल 5 स्थानीय स्टोरेज में ऑब्जेक्ट संग्रहित करना "सामान्य त्रुटि रजिस्ट्री कुंजी को खोलने में असमर्थ अस्थायी (अस्थिर) …" एक्सेस ओडीबीसी से कई परीक्षणों के लिए सेट अप / टायर ड्यूउन को एकजुट करें कैसे अल्फा मिश्रण RGBA अहस्ताक्षरित बाइट रंग तेजी से? क्या PHPStorm में रूबी सिंटेक्स हाइलाइट करना संभव है? टी-एसक्यूएल एक्सओआर ऑपरेटर मैं एक दिन को अजगर की तारीख से कैसे घटा सकता हूं? क्या रेंज लूप के लिए पायथन को लागू करने के लिए संभव है जिसमें इटरेटर वैरिएबल नहीं है? विजुअल स्टूडियो के अंतर्निहित एएसपी.नेट डेवलपमेंट सर्वर के साथ HTTPS नाम से विंडोज फॉर्म में एक नियंत्रण खोजें

क्यों जेएसपी से व्यवसाय तर्क को स्थानांतरित किया जाना चाहिए?

JSP के बाहर व्यापारिक तर्क रखने के क्या फायदे हैं, क्योंकि जेएसपी मुख्य रूप से प्रस्तुति के लिए हैं? हम अभी भी जेएसपी के अंदर लिखा व्यापारिक तर्क देखते हैं, इसलिए मुझे यह जानना जरूरी था कि जेएसपी से व्यवसाय तर्क को आगे बढ़ाकर हमें क्या लाभ मिलता है।

वेब के समाधान से एकत्रित समाधान "क्यों जेएसपी से व्यवसाय तर्क को स्थानांतरित किया जाना चाहिए?"

एमवीसी का मुख्य लाभ यह है कि आपके पास कई दृश्य और साफ और अलग-अलग आर्किटेक्चर और सादगी हो सकती है


पुन: प्रयोज्यता

मान लीजिए कल आप को डेस्कटॉप एप पर चलने वाले एक ही ऐप की ज़रूरत है। तो आप बस दृश्य बदल सकते हैं।


testability

आप इकाई को अपनी सेवा पद्धतियों का परीक्षण कर सकते हैं, लेकिन आप केवल दृश्य परीक्षण तर्क को इकाई से नहीं देख सकते हैं।


रख-रखाव

सेवा विधियों से कोड को समझना आसान है, इसके साथ ही हम इसे / रिलीज सर्विस एपीआई बदल सकते हैं और इसे आसानी से बनाए रख सकते हैं


संस्करण क्षमता

आप अपने एपीआई को संस्करण दे सकते हैं और यदि आप सर्विस एडिशन का उपयोग करते हैं तो इसके लिए तर्क के लिए दृश्य / अद्यतन से संबंधित मानक डॉक्स बनाए रख सकते हैं


यह भी देखें

  • एमवीसी को समझना
  • एमवीसी क्या है?
  • चिंता का पृथक्करण

यह चिंताओं के डिजाइन सिद्धांत के पृथक्करण का एक विशिष्ट अनुप्रयोग है।

चिंताओं को अलग करके, अर्थात् उनमें से प्रत्येक के लिए पृथक लॉजिकल यूनिट (मुख्यतः कक्षा) बनाकर आप किसी विशेष इकाई को बदलने के कारणों की संख्या कम कर सकते हैं।

एसओसी का एक अन्य लाभ इन इकाइयों की औसत आकार और जटिलता को कम कर रहा है। इसके बदले में आपके सॉफ़्टवेयर को समझना और बदलने में आसान होता है।

इसके अतिरिक्त छोटे तार्किक इकाइयां होने से उन्हें इकाई परीक्षण में आसान बना दिया जाता है, एकीकरण परीक्षण में नकल करना आसान होता है और कार्यान्वयन में परिवर्तन के बाद परीक्षणों को ठीक करना आसान होता है।

मैं यहां पोस्ट किए गए सभी बहुत अच्छे लोगों के लिए एक और कारण जोड़ूंगा।

ग्राहक तकनीक हर समय बदल रही है। उपयोगकर्ता डेस्कटॉप, ब्राउज़र या मोबाइल एप्लिकेशन के माध्यम से नहीं आना चाहते हैं; वे सभी का उपयोग करना चाहते हैं, हर समय इसलिए यदि आप एक प्रकार की यूजर इंटरफेस तकनीक में व्यापारिक तर्क को एम्बेड करते हैं, तो संभवतः आपको इसे अन्य सभी में डुप्लिकेट करना होगा। यह रखरखाव, पुन: प्रयोज्यता और नए व्यावसायिक तर्क जोड़ने के लिए खराब है।

आप अपने ऐप को फिर से लिखना नहीं चाहते हैं, क्योंकि आप यूआई तकनीक को बदलने का फैसला करते हैं।

यह सुरक्षा के लिए भी बेहतर है यदि व्यापारिक तर्क ब्राउज़र में जाता है, तो एक मौका है कि उपयोगकर्ता कोड देख सकते हैं और पता लगा सकते हैं कि आप क्या कर रहे हैं।

तो आप सर्वर साइड पर व्यावसायिक तर्क रखने से बेहतर हैं।

  1. यह पुन: प्रयोज्य हो जाता है (अन्य अनुप्रयोगों के लिए और अलग-अलग दृश्यों के लिए (उदाहरण के लिए एक JSON API))
  2. यह इसे डिजाइनरों से दूर ले जाता है (इसलिए यह उनके रास्ते में नहीं आता है, और वे इसे गलती से नहीं तोड़ते हैं)

मुझे यकीन नहीं है लेकिन यह कारण हो सकता है:

पुन: प्रयोज्य उद्देश्य के लिए

जेस्प को केवल प्रस्तुतीकरण उद्देश्य और हमारे एचटीएमएल डिजाइनर के लिए इस्तेमाल किया जाना चाहिए, जो बाद में डिजाइन करते हैं, पृष्ठ को जावा कोडिंग के बारे में जानकारी नहीं है, आरामदायक नहीं होगा। और सबलेट में सभी बिसनेस लॉजिक लिखना कोड को पुन: प्रयोज्य देता है। और jsp पृष्ठ में ब्रिसनेस लॉजिक लिखने के लिए, कुछ अन्य तरीके हैं, जैसे कि स्क्रिप्लेट्स का उपयोग करना। इसलिए कम लाभ और अतिरिक्त कार्य के साथ काम क्यों करते हैं

अब अगर हम व्यापार लॉजिक के लिए जेएसपी पेज का इस्तेमाल कर रहे हैं तो जेपीपी पृष्ठ के भीतर स्क्रिप्टलेट अधिक होगा, जो भारी रखरखाव लागत में आता है। व्यापार इकाई के लिए सर्वलेट का पृथक घोषणापत्र उपर्युक्त सभी से बच जाएगा

बस दूसरे सहयोगियों द्वारा पोस्ट किए गए अच्छे कारणों को जोड़ने के लिए और विशेष रूप से "व्यापारिक तर्क को जेएसपी से हटाया जाना चाहिए"

काम के बारे में संक्षेप में हमारे पास बहुत से जेएसपी थे जहां व्यापार तर्क खत्म हो गया था और यह उस पर देखकर बहुत गन्दा था। सत्र / अनुरोध से ऑब्जेक्ट प्राप्त करने और कुछ जांच करने के लिए तर्क था। एक सरल उदाहरण, जेएसपी में कुछ शर्तों के आधार पर अलग-अलग पेज खिताबों का निर्देशन है।

हमारे अंत में इस तर्क को कैसे स्थानांतरित किया गया था, वह एक पेज बिल्डर / कम्पोजर ऑब्जेक्ट को पेश करना था जो किसी विशेष पेज को व्यवस्थित करने के लिए सभी आवश्यक विवरणों को लेता है और पृष्ठ बीन ऑब्जेक्ट में सभी सही फ़ील्ड सेट करता है। इस पृष्ठ बीन ऑब्जेक्ट को फिर से अनुरोध पर सेट किया जाता है उदाहरण के लिए, इसका मतलब यह है कि जेएसपी पर आपके पास सभी पिछले तर्क अब पेज बिल्डर / कम्पोजर ऑब्जेक्ट पर ले जाया गया है और फिर सबसे महत्वपूर्ण बात आप परीक्षणों के लिए यूनिट टेस्ट लिख सकते हैं! अगर सही मान पेज बीन में सेट हो जाते हैं

final SimplePageBuilder pageBuilder = new SimplePageBuilder(object1); request.setAttribute("TestBean", pageBuilder.buildPage()); 

BuildPage विधि पृष्ठ बीन ऑब्जेक्ट वापस करेगा और jsp में एक सरल उदाहरण getTitle केवल शीर्षक (तर्क को सारणी के रूप में पढ़ने के लिए आसान) वापस कर देगा।

व्यावसायिक तर्क प्रस्तुति तर्क से अलग होने पर वेब अनुप्रयोग को पुन: उपयोग और बनाए रखना बेहतर होता है।

मान लीजिए मेरे पास 3 जेएसपी पेज हैं, प्रत्येक को कुछ सामान्य व्यावसायिक तर्कों की आवश्यकता होती है। अगर मैं जेएसपी पेजों के अंदर व्यापार तर्क रखता हूं, तो कोड की डुप्लिकेट होगी।