चिंताओं को अलग करना क्या है?
चिंता क्या है?
इन "अलग-अलग चिंताओं" में कोई ऐप कैसे विभाजित कर सकता है?चिंताओं को अलग करना क्या है?
उत्तर
चिंताएं सॉफ्टवेयर कार्यक्षमता के विभिन्न पहलुओं हैं। उदाहरण के लिए, सॉफ़्टवेयर का "व्यावसायिक तर्क" एक चिंता है, और इंटरफ़ेस जिसके माध्यम से कोई व्यक्ति इस तर्क का उपयोग करता है वह दूसरा है।
चिंताओं को अलग करना इन चिंताओं में से प्रत्येक के लिए कोड अलग रखना है। इंटरफ़ेस को बदलने से व्यवसाय तर्क कोड को बदलने की आवश्यकता नहीं होनी चाहिए, और इसके विपरीत।
मॉडल-व्यू-कंट्रोलर (एमवीसी) डिज़ाइन पैटर्न बेहतर सॉफ़्टवेयर रखरखाव के लिए इन चिंताओं को अलग करने का एक उत्कृष्ट उदाहरण है।
अधिक जानकारी के लिए:
इस उत्तर को उन दिनों को अपडेट करने की आवश्यकता है। मेरी राय में, यह किसी समस्या का encapsulation या abstraction के बारे में है। कुछ सीएसएस, जेएस को एक सेक्शन के रूप में सोच सकते हैं जब तक कि एक विशिष्ट समस्या को समाहित किया जा सके। यह उन दिनों स्वीकार्य है। लियोनार्डो सी – Leonardo
असल में, एमवीसी चिंताओं को अलग करने के _फेलर_ का एक अच्छा उदाहरण है, क्योंकि नियंत्रक को मॉडल और दृश्य के बारे में बहुत अच्छी तरह से पता होना चाहिए। –
विकिपीडिया:
कंप्यूटर विज्ञान में, चिंताओं (SoC) के अलग होने के अलग विशेषताएं है कि संभव के रूप में छोटे रूप में कार्यक्षमता में ओवरलैप में एक कंप्यूटर प्रोग्राम तोड़ने की प्रक्रिया है। चिंता एक कार्यक्रम में रुचि या फोकस का कोई टुकड़ा है। आम तौर पर, चिंताओं विशेषताओं या व्यवहार के पर्याय हैं। एसओसी की ओर प्रगति परंपरागत रूप से मॉड्यूलरिटी और इंकापुलेशन के माध्यम से प्राप्त की जाती है, सूचना छिपाने की सहायता से।
मैं इसे प्रतिनिधि पाने के लिए पोस्ट नहीं करता हूं, लेकिन आश्चर्य की बात है कि आप एक प्रश्न क्यों पूछेंगे जिसे आसानी से उत्तर दिया जा सकता है।
http://en.wikipedia.org/wiki/Separation_of_concerns
कंप्यूटर विज्ञान में, चिंताओं (SoC) के अलग होने के अलग विशेषताएं है कि संभव के रूप में छोटे रूप में कार्यक्षमता में ओवरलैप में एक कंप्यूटर प्रोग्राम तोड़ने की प्रक्रिया है। चिंता एक कार्यक्रम में रुचि या फोकस का कोई टुकड़ा है। आम तौर पर, चिंताओं विशेषताओं या व्यवहार के पर्याय हैं। एसओसी की ओर प्रगति परंपरागत रूप से मॉड्यूलरिटी और इंकापुलेशन के माध्यम से प्राप्त की जाती है, सूचना छिपाने की सहायता से।
इस सिद्धांत के अनुसार एक भी समस्या चिंताओं, जो पहचान की जानी चाहिए और जटिलता से निपटने के लिए, और इस तरह मजबूती, अनुकूलनशीलता, रख-रखाव, और पुनर्प्रयोग के रूप में आवश्यक इंजीनियरिंग गुणवत्ता कारकों को प्राप्त करने के अलग के विभिन्न प्रकार शामिल है। Link
आम तौर पर, इसका मतलब है कि आप अपने सॉफ़्टवेयर को अलग-अलग क्षेत्रों में अलग करते हैं जिनकी कार्यक्षमता ओवरलैप नहीं होती है।
विकिपीडिया एक अच्छा व्याख्या है:
नहीं वास्तव में अपने प्रश्न का उत्तर है, लेकिन अगर आप इस में रुचि रखते हैं, वहाँ एक संबंधित डिजाइन पैटर्न निर्भरता कहा जाता है उलटा।
मान लें कि आपके पास कक्षा के बाहर से प्रभावित होने वाली विधि के साथ एक वर्ग है, या आपको इसके कई कार्यान्वयन की आवश्यकता है, या तथ्य यह है कि यह उस वर्ग का एक तरीका इकाई परीक्षण को मुश्किल बनाता है। आप उस विधि को पूरी तरह से अलग वर्ग में डाल सकते हैं, और पैरामीटर के रूप में प्रथम श्रेणी के उदाहरण को पास कर सकते हैं।
नकली इंटरफेस का उपयोग करते समय यह विशेष रूप से उपयोगी होता है। आप कठोर कोडित मूल्यों और अपेक्षित परिणामों के साथ अन्य वर्ग के लिए मैक्स में गुजरकर विधि का परीक्षण कर सकते हैं।
मुझे लगता है कि आप निर्भरता इंजेक्शन का मतलब है। –
उन शर्तों के बारे में, विकिपीडिया देखें: [निर्भरता इंजेक्शन] (https://en.wikipedia.org/wiki/Dependency_injection) | [नियंत्रण में उलटा] (https://en.wikipedia.org/wiki/Inversion_of_control) | [निर्भरता उलटा] (https://en.wikipedia.org/wiki/Dependency_inversion_principle)। –
आप एचटीएमएल और सीएसएस के बारे में जानते हैं? यह वहीं चिंताओं को अलग कर रहा है।
HTML फ़ाइल (संभवतः एक्सएमएल) दस्तावेज़ संरचना को परिभाषित करता है। सीएसएस फ़ाइल परिभाषित करती है कि दस्तावेज़ को आपकी स्क्रीन पर कैसे प्रस्तुत किया जाता है।
अच्छा उदाहरण! इसे प्रस्तुति परत से नियंत्रक तर्क को अलग करके, विभिन्न कार्यक्रमों के लिए आसानी से अनुकूलित किया जा सकता है (ठीक है, एक मामूली उदाहरण)। –
यह विकिपीडिया पर वर्णित है: http://en.wikipedia.org/wiki/Separation_of_concerns
यह एकल जिम्मेदारी सिद्धांत में कहा गया है मूल्य है, कि एक समारोह/वर्ग/विधि केवल एक बात करना चाहिए। यह सब कुछ करना चाहिए, इसे अच्छी तरह से करें, और केवल यह करें।
असल में, यह मतलब है कि आप एक ढेलेदार पेस्ट में एक साथ अपने विचारों को Munge नहीं करना चाहिए, लेकिन आप कोड में सफाई से अपने विचारों को बांट देना चाहिए। यदि आप नहीं करते हैं, तो कोड को बदलना, परीक्षण करना या डीबग करना मुश्किल है। यदि आप उन्हें अलग करते हैं, तो आपके पास बदलने की कुछ स्वतंत्रता है। उदाहरण के लिए, यदि आप अपनी क्वेरी के साथ अपना एचटीएमएल जेनरेटर मर्ज करते हैं, तो आपको स्वरूपण को बदलना मुश्किल लगेगा, और आपको एक अलग क्वेरी पर स्विच करना मुश्किल लगेगा। यदि आप उन्हें अलग करते हैं, तो उन दोनों चीजें आसान हो जाती हैं। या कम से कम, आसान।
डाटा कई अलग अलग तरीकों में प्रतिनिधित्व किया जा सकता है और अगर हम अभ्यावेदन के बीच अनुवाद कर सकते हैं इससे कोई फर्क नहीं होगा जो प्रतिनिधित्व हम उपयोग करने के लिए है क्योंकि हम पहुँच सकते हैं और है कि डेटा में हेरफेर करने में सक्षम होना चाहिए चुनें। अगर हमारे पास सार्वभौमिक भाषा अनुवादक था तो इससे कोई फर्क नहीं पड़ता कि किसी ने हमें फ्रेंच, जर्मन या अरबी में समय बताया था; अनुवाद करने की हमारी क्षमता यह सुनिश्चित करेगी कि हम समय जान लेंगे। डेटा शर्तों में तीन महत्वपूर्ण प्रतिनिधित्व हैं जो महत्वपूर्ण हैं: भौतिक प्रतिनिधित्व कहां और कैसे संग्रहीत किया जाता है; किस डेटा को संग्रहीत किया जा सकता है, इसके अर्थशास्त्र और अन्य डेटा के साथ संबंधों का तार्किक प्रतिनिधित्व; और बाहरी प्रतिनिधित्व, यह उपयोगकर्ताओं के लिए कैसा लगता है। यह मानते हुए कि अलग-अलग प्रतिनिधित्वों के बीच अनुवाद करना संभव है, लोगों को डेटा को उनके पसंदीदा तरीके से समझने और उपयोग करने की अनुमति देता है। तो, भौतिक स्तर पर एक डेटाबेस तकनीशियन तार्किक वर्णन या बाहरी विवरण से स्वतंत्र रूप से डेटा के भौतिक भंडारण को अनुकूलित करने में सक्षम होगा, बशर्ते उन्होंने संग्रहीत विवरण और प्रतिनिधित्व के बीच अनुवाद को समायोजित किया हो। इन चिंताओं को अलग करके सामान्य उद्देश्यों के डेटा संग्रहों का निर्माण करना संभव हो जाता है जिनका उपयोग अलग-अलग उपयोगकर्ताओं द्वारा विभिन्न आवश्यकताओं के साथ किया जा सकता है और जो डेटा को डुप्लिकेट करने की आवश्यकता के बिना विभिन्न प्रतिनिधित्वों का उपयोग करते हैं। हम इस पाठ्यक्रम में इन विशेषताओं का पुनरीक्षण करेंगे
- 1. IFilterProvider और चिंताओं को अलग करना
- 2. क्यों मेरी चिंताओं को अलग करना डाटाबेस/बिजनेस ऑब्जेक्ट्स/वेब सेवा, मुझे और कोड लिखता है?
- 3. जावास्क्रिप्ट चिंताओं
- 4. इस कोड के लिए चिंताओं को अलग करने का सबसे अच्छा तरीका क्या है?
- 5. किसी को कैसे समझाया जाए कि डेटा संरचना को खुद को आकर्षित नहीं करना चाहिए, चिंताओं को अलग करना?
- 6. दो अलग-अलग भंडारों को विलय करना
- 7. क्या HTML से जावास्क्रिप्ट को अलग करना असंभव है?
- 8. अलग-अलग नामस्थानों को लपेटना या मर्ज करना संभव है?
- 9. WPF डेटाग्रिड प्रदर्शन चिंताओं
- 10. सीक्यूआरएस सुरक्षा जैसे क्रॉस कटिंग चिंताओं को लागू करता है
- 11. इंटरफेस का उपयोग करके पढ़ने और लिखने की चिंताओं को अलग करने का सबसे अच्छा तरीका?
- 12. iCanHaz.js - टेम्पलेट्स को अलग करना?
- 13. पायडॉट: क्या दो अलग-अलग नोड्स को उसी स्ट्रिंग के साथ प्लॉट करना संभव है?
- 14. स्कैला में, क्या अलग-अलग आकारों की दो सूचियों को ज़िप करना संभव है?
- 15. क्या जावास्क्रिप्ट कन्स्ट्रक्टर अलग-अलग ऑब्जेक्ट प्रकारों को वापस करना संभव है?
- 16. एचटीएमएल एक्सचेंज एक्सेसिबिलिटी चिंताओं का चयन करें
- 17. Django: क्या मुझे एक अलग प्रक्रिया को बंद करना चाहिए?
- 18. उपयोगकर्ता कोड का मूल्यांकन करने की सुरक्षा चिंताओं क्या हैं?
- 19. अलग-अलग भूमिकाओं वाले उपयोगकर्ताओं के लिए एक ही पृष्ठ को अलग-अलग प्रदर्शित करना
- 20. स्व-संशोधित कोड को अलग करना
- 21. एमएक्सएमएल और एक्शनस्क्रिप्ट को अलग करना
- 22. मानचित्र से रिकॉर्ड उदाहरण को अलग करना
- 23. रेल: उत्पादन से स्टेजिंग को अलग करना
- 24. RapidXML स्ट्रिंग स्वामित्व चिंताओं को कैसे ठीक करें?
- 25. ड्रूपल 7 drupal_mail HTML को अलग करना?
- 26. क्या एक ही पृष्ठ पर jQuery के कई अलग-अलग संस्करण लोड करना संभव है?
- 27. क्या NSFetchedResultsController का उपयोग करते समय अलग-अलग परिणाम प्राप्त करना संभव है?
- 28. एरलांग ईटीएस टेबल बनाम संदेश गुजर रहा है: अनुकूलन चिंताओं?
- 29. पाइथन पीएएम मॉड्यूल के साथ सुरक्षा चिंताओं?
- 30. क्या ट्रांसफॉर्म विकल्पों के लिए अलग-अलग अवधि/देरी सेट करना संभव है?
उचित प्रश्न निर्माण के संबंध में अक्सर पूछे जाने वाले प्रश्न पढ़ें। – FlySwat
यह आलेख अद्भुत है: https://www.viget.com/articles/client-side-separation-of-concerns-are-we-doing-it-wrong और वास्तव में अच्छे तरीके से चिंताओं को अलग करना शामिल है। – Costa