मैंने सुना है कि लोग व्यावसायिक तर्क के बारे में बहुत काम करते हैं, और ऑनलाइन, और मैंने इसके बारे में इस साइट पर कई प्रश्न पढ़े हैं, लेकिन यह शब्द अभी भी मेरे लिए बहुत मायने नहीं रखता है। उदाहरण के लिए, यहां कुछ (पैराफ्रास्ड) कथन दिए गए हैं जिन्हें मैं अक्सर देखता हूं:
"व्यावसायिक तर्क आपके कार्यक्रम का हिस्सा है जो वास्तविक व्यावसायिक नियमों को एन्कोड करता है।" मैंने जो भी परिभाषाएँ पढ़ी हैं उनमें से अधिकांश इस तरह से गोलाकार हैं।
"व्यावसायिक तर्क आपके विशेष एप्लिकेशन के लिए सब कुछ अद्वितीय है।" मैं यह नहीं देखता कि यह "आपके विशेष एप्लिकेशन व्यवसाय तर्क के अलावा कुछ भी नहीं है" से अलग कैसे है, जब तक कि हम गलती से पहियों के एक गुच्छा को पुनर्निमित नहीं करते हैं जो हम मौजूदा 3 पार्टी सॉफ्टवेयर का उपयोग कर सकते थे। इसलिए प्रश्न शीर्षक।
"आपके डेटा एक्सेस लेयर के ऊपर और आपके GUI लेयर के नीचे एक बिजनेस लॉजिक लेयर होना चाहिए।" मेरे द्वारा लिखे गए कोड में, डेटाबेस एक्सेसर्स को यह जानना होता है कि वे किस डेटा को एक्सेस करने वाले हैं, और यूआई कोड को यह जानने के लिए बहुत कुछ जानना होगा कि इसे सही तरीके से प्रदर्शित करने के लिए क्या करना है, और वास्तव में इसके बीच में कुछ भी नहीं है। क्लाइंट और सर्वर के बीच डेटा के ब्लॉब्स को पार करने के अलावा वे दो स्थान हैं। तो क्या वास्तव में एक व्यापार तर्क परत में जाना चाहिए?
"व्यावसायिक तर्क प्रस्तुति तर्क से अलग होना चाहिए।" अधिकांश फ़ीचर अनुरोध हमें व्यावसायिक कारणों से प्रेजेंटेशन लॉजिक बदलने के लिए मिलते हैं। यदि व्यापार नियमों में से एक को डिफ़ॉल्ट रूप से 32 वें अंक में अमेरिकी सरकार के बॉन्ड की कीमतों को प्रदर्शित करना है (जबकि उपयोगकर्ता को कॉन्फ़िगर करने के लिए यूआई प्रदान करते हुए), तो प्रस्तुति लॉजिक को कम से कम इस नियम का पता होना चाहिए, यदि यह पूरी तरह से लागू नहीं होता है। इसके अलावा, ऐसा लगता है कि यूएक्स डिजाइन का एक प्रमुख हिस्सा उपयोगकर्ता को उन व्यापार नियमों को समझने में मदद कर रहा है जिन्हें हमारे सॉफ्टवेयर लागू करने की कोशिश कर रहे हैं।
क्या यह संभव है कि मैं वास्तव में एक टीम पर हूं जो केवल व्यावसायिक तर्क देता है, और सभी गैर-व्यावसायिक तर्क अन्य टीमों द्वारा किया जा रहा है? या "व्यावसायिक तर्क" की पूरी अवधारणा एक अलग इकाई के रूप में केवल कुछ अनुप्रयोगों या आर्किटेक्चर के लिए व्यावहारिक है?
उत्तरों को ठोस बनाने में मदद करने के लिए: पहले से ही आपको डोमिनोज़ पिज्जा ऐप को फिर से लागू करना होगा। व्यावसायिक तर्क क्या है, और उस एप्लिकेशन का गैर-व्यावसायिक तर्क क्या है? और उस पिज़्ज़ा-ऑर्डरिंग बिजनेस लॉजिक को कोड के अपने "लेयर" में कैसे डालना संभव होगा, बिना डेटा की जानकारी और प्रेजेंटेशन लेयर्स के अधिकांश पिज्जा की जानकारी ब्लीडिंग के बिना?
अपडेट: मैं इस नतीजे पर पहुंचा हूं कि मेरी टीम शायद ९ ०% यूआई कोड और सबसे अधिक काम कर रही है - लेकिन सभी नहीं - जिसे आप व्यावसायिक तर्क कहते हैं, वह अन्य टीमों या कंपनियों से आता है। असल में, हमारा आवेदन निगरानी के लिए हैवित्तीय डेटा, और लगभग सभी सुविधाएँ उपयोगकर्ता के लिए यह अनुकूलित करने के तरीके हैं कि वे किस डेटा को देखते हैं और वे इसे कैसे देखते हैं। कोई खरीद या बिक्री नहीं चल रही है (हालांकि हम अपनी कंपनी के अन्य ऐप के साथ थोड़ा सा एकीकृत करते हैं) और बाहरी स्रोतों के भार से वास्तविक डेटा की आपूर्ति की जाती है। लेकिन हम उपयोगकर्ताओं को अपने "मॉनिटर" की प्रतियां अन्य उपयोगकर्ताओं को भेजने जैसी चीजें करने की अनुमति देते हैं, इसलिए हम कैसे संभालते हैं, इसका विवरण संभवतः व्यावसायिक तर्क के रूप में योग्य है। वास्तव में एक मोबाइल ऐप है जो वर्तमान में हमारे कुछ बैकएंड कोड से बात करता है, और मुझे पता है कि हमारे फ्रंटेंड कोड के किस हिस्से को मैं अपने यूआई के साथ एक आदर्श दुनिया (मूल रूप से हमारे क्वासी-एमवीसी में एम) के साथ साझा करना चाहूंगा मैं अनुमान लगा रहा हूं कि हमारे लिए बी.एल.एल.
मैं user61852 के उत्तर को स्वीकार कर रहा हूं क्योंकि इसने मुझे "व्यापार तर्क" के बारे में और अधिक ठोस समझ दी और इसका उल्लेख नहीं किया।