मैं साफ-सफाई पर अध्ययन कर रहा हूं और इसके परिणामस्वरूप मैं बहुत ही नाटकीय ढंग से पुनर्विचार कर रहा हूं कि मैं सॉफ्टवेयर कैसे डिजाइन और लिखता हूं।
हालाँकि, मैं अभी भी कुश्ती कर रहा हूँ, लेकिन व्यावसायिक नियमों के लिए है, जैसे "किसी वस्तु को बचाने के अपडेट्स पर, पहले उन सभी मदों की सूची जिन्हें मुझे देखने / संपादित करने आदि की अनुमति है, पुष्टि करें कि यह आइटम सूची में है" और यह कि आइटम श्रेणी वर्तमान में उपयोग से बंद नहीं है, (और अन्य नियम आदि)) ".. क्योंकि यह एक (जटिल लेकिन atypical नहीं) व्यावसायिक नियम है, और इसलिए इसे व्यापार तर्क में पुश करने के बजाय एप्लिकेशन डोमेन में संभाला जाना चाहिए। db / दृढ़ता परत।
हालांकि यह मुझे लगता है कि कुशलतापूर्वक इन स्थितियों की जांच करने के लिए यह अक्सर एक अच्छी तरह से तैयार की गई db क्वेरी के साथ सबसे अच्छा संभाला जा रहा है, बजाय सभी डेटा को एप्लिकेशन डोमेन में लोड करने के ...
समय से पहले अनुकूलन के बिना, इस प्रश्न से निपटने के लिए एक अनुशंसित दृष्टिकोण या कुछ चाचा बॉब लेख क्या है? या वह "डोमेन में मान्य जब तक यह एक समस्या बन जाता है" कहेगा ??
मैं वास्तव में उपयोग के मामलों के अलावा किसी भी अन्य चीज़ों के लिए कोई अच्छा उदाहरण / नमूने खोजने के लिए संघर्ष कर रहा हूं।
अपडेट करें:
हाय सब, उत्तर के लिए धन्यवाद। मुझे स्पष्ट होना चाहिए, मैं लंबे समय से (ज्यादातर वेब ऐप) सॉफ्टवेयर लिख रहा हूं, और निश्चित रूप से उन सभी विषयों के बारे में पहले से ही अनुभव और सहमत हूं जो आप सामूहिक रूप से वर्णन करते हैं (बैकएंड द्वारा मान्य, ग्राहक डेटा पर भरोसा नहीं करते हैं, आमतौर पर बोलते हैं केवल आवश्यकता होने पर कच्ची दक्षता का पीछा करना, हालाँकि उपलब्ध होने पर db टूल्स की ताकत को स्वीकार करना, इत्यादि) और डेवलपर "एन-टियर्स एप्लिकेशन" कोड ट्रेंड के साथ एक विशाल वसा नियंत्रक बनाने के लिए "यह सब एक साथ फेंक" के जीवनचक्र के माध्यम से गए हैं। , और अब वास्तव में स्वच्छ / एकल जिम्मेदारी शैली आदि को पसंद करना और जांचना, मूल रूप से हाल ही में कुछ परियोजनाओं के परिणाम के रूप में जो काफी विकसित और व्यापक रूप से वितरित व्यावसायिक नियमों के रूप में विकसित हुई और परियोजनाएं आगे आईं और ग्राहकों की आवश्यकताओं में सुधार हुआ।
विशेष रूप से, मैं क्लाइंट-फेसिंग के साथ-साथ आंतरिक-उपयोग की कार्यक्षमता के लिए REST एप बनाने के संदर्भ में क्लीन स्टाइल आर्किटेक्चर को देख रहा हूं, जहां व्यवसाय के कई नियम मूल रूप से नेट पर दिखने वाले प्रत्येक उदाहरण की तुलना में बहुत अधिक जटिल हो सकते हैं। (यहां तक कि स्वच्छ / हेक्स वास्तुकला के लोग खुद भी)।
इसलिए मुझे लगता है कि मैं वास्तव में पूछ रहा था (और स्पष्ट रूप से बताने में विफल रहा) कि क्लीन एंड अस्ट एपी एक साथ कैसे बैठेंगे, जहां इन दिनों आप देख रहे अधिकांश एमवीसी सामानों में आने वाले अनुरोध सत्यापनकर्ता हैं (जैसे कि फ़्लूएंक्विलेज लाइब्रेरी)। मेरे "सत्यापन" नियम इतने अधिक नहीं हैं "क्या यह 50 से कम वर्णों की एक स्ट्रिंग है" लेकिन अधिक "क्या यह उपयोगकर्ता इस उपयोगकर्ता को कॉल कर सकता है / सहभागिताकर्ता डेटा के इस संग्रह पर इस ऑपरेशन को कर सकता है जो दिए गए कुछ संबंधित ऑब्जेक्ट वर्तमान में टीम एक्स द्वारा लॉक किया गया है। इस महीने के अंत तक आदि "... इस तरह के गहन शामिल सत्यापन जहां व्यापार डोमेन ऑब्जेक्ट्स और डोमेन नियमों के बहुत सारे लागू होते हैं।
क्या मुझे उन नियमों को एक विशिष्ट प्रकार के मान्य-वस्तु प्रकार में स्पिन करना चाहिए ताकि प्रत्येक usecase-interactor (FluentValidator परियोजना से प्रेरित हो लेकिन अधिक व्यावसायिक तर्क और डेटा एक्सेस शामिल हो) के साथ, क्या मुझे कुछ हद तक गेटवे की तरह सत्यापन का इलाज करना चाहिए, क्या मुझे चाहिए उन मान्यताओं को गेटवे में डालें (जो मुझे लगता है कि गलत है), आदि आदि।
संदर्भ के लिए, मैं इस तरह के कई लेखों को बंद कर रहा हूं , लेकिन मटिया सत्यापन पर ज्यादा चर्चा नहीं करता है।
लेकिन मुझे लगता है कि मेरे प्रश्न का संक्षिप्त उत्तर उस उत्तर की तरह है जिसे मैंने स्वीकार किया है: "यह कभी आसान नहीं होता है, और यह निर्भर करता है"।