आप वस्तु उन्मुख डिजाइन कौशल का मूल्यांकन कैसे करेंगे? [बन्द है]


11

किस तरह की अंतर्दृष्टि या प्रश्न आपको किसी व्यक्ति के ओओएडी कौशल का निर्धारण करने के लिए प्रेरित करेंगे।


उनसे पूछें कि क्या उन्होंने अपना i।
नौकरी

जवाबों:


10

आप एक साधारण समस्या के बारे में कुछ आधा-ओओ डिज़ाइन दिखा सकते हैं, और चर्चा करते हैं कि यह क्या करता है, इसके बारे में क्या अच्छा है और क्या बुरा है, क्या यह पर्याप्त लचीला है, क्या सुधार किया जा सकता है, और कैसे।

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

महत्वपूर्ण यह याद रखना है कि चर्चा महत्वपूर्ण है, न कि यह कि आप पहले से उत्तर जानते थे। किसी भी सभ्य डेवलपर को उस कोड के बारे में कुछ इंगित करने में सक्षम होना चाहिए जो आपने पहले भी नहीं सोचा था।


मुझे साक्षात्कार का यह तरीका पसंद है जहाँ यह प्रश्नोत्तर के बजाय चर्चा है।
रोहन मोंगा

5

व्यक्ति के साथ एक खुले अंत डिजाइन समस्या पर चर्चा करें। देखें कि सिस्टम के एक मॉडल के निर्माण के लिए वह किस तरह से आगे बढ़ता है, किस तरह के प्रश्न पूछे जाते हैं, नई जानकारी के जवाब में डिज़ाइन कैसे बदलता है।

एक महान उदाहरण - स्टीव येज ने अपने एक ब्लॉग पोस्ट में उल्लेख किया है - व्यक्ति को एक्सएमएल के लिए ऑब्जेक्ट मॉडल के साथ आने के लिए कहना है।


क्या आप मुझे लिंक दे सकते हैं :)
रोहन मोंगा

1
@bronzebeard - यहां आप जाएं - sites.google.com/site/steveyegge2/… । वह वास्तव में OO मॉडलिंग HTML के बारे में बात करता है - लेकिन मुझे लगता है कि XML उस प्रश्न का एक कठिन संस्करण हो सकता है :)
talonx

4

सभी सबसे लोकप्रिय डिजाइन पैटर्न का अच्छा ज्ञान होने से उम्मीदवार अपने डिजाइन की समस्याओं के समाधान के लिए वास्तव में खोजा जा सकता है।

उन पर चर्चा करने और उन्हें लागू करने के बारे में जानने में सक्षम होना एक अच्छा संकेत है कि वह उन्हें समझता है।

उदाहरण के लिए उससे पूछना उसके अतीत के अनुभवों में मदद करता है।


यह जानने का एक परीक्षण है कि ओवरलोडिंग C # में कैसे काम करती है, लेकिन OOAD डिजाइन कौशल के लिए शायद ही कोई परीक्षा हो।
user281377

आप पूरी तरह से सही हैं। मैं आपके प्रश्न को बहुत तेजी से पढ़ता हूं मैं इसे बदल देता हूं।

4
हालाँकि, आपको डिज़ाइन पैटर्न का ज्ञान हो सकता है और अवधारणा के बारे में कभी नहीं सुना होगा। मैं जिम्मेदारी की श्रृंखला, पर्यवेक्षकों और नियंत्रकों जैसी चीजों का उपयोग कर रहा था, इससे पहले कि मुझे पता था कि उनके नाम थे। यह मानकर न चलें कि कोई व्यक्ति किसी पैटर्न का नाम नहीं जानता है, क्योंकि वह उसे सक्षम रूप से उपयोग नहीं कर सकता है।
माइकल के

@ मिचेल: हाँ, इसीलिए निश्चित रूप से यह बेहतर है कि पहले किसी निश्चित समस्या को कैसे हल किया जाए, फिर पैटर्न के वास्तविक नाम के बारे में बात करें। मैं कई लोगों को रोज़ाना रणनीति के पैटर्न का उपयोग करने के लिए जानता हूं और यह नहीं जानता कि इसे ऐसा कहा जाता है। उन्होंने सिर्फ चार सोचकर इसे "बनाया", जैसा कि चार के मूल समूह ने किया था। अंतर यह है कि उत्तरार्द्ध ने इस विषय पर एक किताब लिखी थी।

नोट, गैंग ऑफ़ फोर को अन्य परियोजनाओं में उपयोग किए गए OO कोड को देखने से पैटर्न मिला। वे किसी भी तरह से किसी भी डिजाइन का श्रेय नहीं लेते हैं, केवल उन्हें पहचानने और उन्हें सुसंगत तरीके से वर्णन करने के लिए।
मैकनील

3

एक शब्दावली प्रश्नोत्तरी दें। "डिफाइन इनहेरिटेंस" या "ओओ डिज़ाइन की नाम 3 विशेषताएं" ऐसे प्रश्न हैं जो आपको किसी व्यक्ति के कौशल के बारे में कुछ भी नहीं बताएंगे, केवल तब तक जब तक वह आखिरी बार एक पाठ्यपुस्तक पढ़ता है। मैं कई महान प्रोग्रामर से मिला हूं, जो हर दिन इन कौशलों का उपयोग करते हैं, लेकिन अगर औपचारिक परिभाषा देने के लिए कहा जाए, तो वह चौंक जाएगा।


2

उसे एक कमरे या किसी अन्य आभासी इकाई के लिए व्यावसायिक वस्तुओं, कक्षाओं और इंटरफेस / विधियों को लिखने के लिए कहेंगे


2

यदि संभव हो, तो नमूना कोड के लिए पूछें।

अन्यथा, एक उदाहरण के रूप में उपयोग करने के लिए कुछ प्रक्रियात्मक कोड ढूंढें (या कुछ खराब डिजाइन किए गए ओओ कोड), और फिर उनसे पूछें कि वे कैसे फिर से डिज़ाइन करेंगे, सामान्य करेंगे और इसे सुधारेंगे। सुनिश्चित करें कि कार्यक्रम में अतिरिक्त संदर्भ है, ताकि नया स्वरूप सार्थक हो सके।

अंतत: आप क्या परीक्षण कर रहे हैं - डिजाइन-- व्यक्तिपरक है। इस प्रकार, आपके मूल्यांकन को कई संभावित अच्छे समाधानों की अनुमति देने के लिए खुला होना चाहिए, और केवल एक ही नहीं। फिर, आवश्यकताओं के संभावित परिवर्तनों के बारे में सोचें जो एक इंटरफ़ेस परिवर्तन को मजबूर करेगा: वे इसे कैसे संभालते हैं?


1

पुस्तक को हेड फर्स्ट डिज़ाइन पैटर्न पढ़ें। पुस्तक के सभी उदाहरण ऑब्जेक्ट ओरिएंटेड समस्या से शुरू होते हैं और डिज़ाइन पैटर्न में अंत तक होते हैं। वे यह भी बताते हैं कि ओओपी की कुछ अवधारणाएं सीमित परिणाम क्यों प्राप्त करेंगी और कुछ अन्य की तुलना में बेहतर क्यों हैं।

हालांकि एक डिज़ाइन पैटर्न पुस्तक इस पुस्तक OOP की समस्याओं से भरा है :-)


मैं इसके बारे में नहीं बताता, क्योंकि पुस्तक के सभी उदाहरण विशेष रूप से एक डिज़ाइन पैटर्न या दूसरे की ओर हैं। यदि आपके पास पर्याप्त सैद्धांतिक ज्ञान है, तो आप यह पता लगाने में सक्षम होंगे और यह व्यावहारिक अनुप्रयोग को प्रतिबिंबित नहीं करता है
रोहन मोंगा

1

सरल शुरू करें: OOP क्या है?

आप OOP के मूल परिसर के बारे में पूछकर शुरू कर सकते हैं: अमूर्तता, बहुरूपता, विरासत और इनकैप्सुलेशन। विचार के लिए अच्छा भोजन उन्हें गर्म करने के लिए।

उन्हें एक समस्या दें

अगला, उन्हें एक समस्या के साथ प्रस्तुत करें जिसमें पैटर्न शामिल होने की संभावना है। यह नाम या पैटर्न का उपयोग करने के लिए आवश्यक नहीं है, लेकिन उनके दृष्टिकोण की संभावना होगी अगर उन्हें क्षेत्र में अनुभव मिला है।

शायद गतिशील पाठ इनपुट सत्यापन। आप यह देखने के लिए कि यह एक मान्य दिनांक, समय या दिनांक और समय ISO8601 प्रारूप में है, चरित्र द्वारा इनपुट चरित्र को मान्य करने में सक्षम होना चाहते हैं। आपको हर बार एक कुंजी दबाने पर इनपुट स्ट्रिंग की एक प्रति मिलती है और आप यह इंगित करने के लिए बूलियन वापस कर सकते हैं कि क्या पाठ कम से कम एक प्रारूप में अच्छा है। उन्हें ओओ डिजाइन सिद्धांतों का उपयोग करके डिजाइन के माध्यम से बात करने और स्केच करने के लिए कहें।

तब तक आपने चैट करना समाप्त कर दिया है

  1. नियंत्रक (वह चीज़ जो परिवर्तन की घटनाओं को भड़काती है और प्रतिक्रियाओं का मूल्यांकन करती है),
  2. पर्यवेक्षक (सत्यापनकर्ता परिवर्तन की घटनाओं पर प्रतिक्रिया देते हैं),
  3. रणनीति (प्रत्येक सत्यापनकर्ता यह निर्धारित करने के एक अलग तरीके का प्रतिनिधित्व करता है कि इनपुट वैध है),

यदि वे OOD को समझते हैं तो आपको एक बहुत अच्छा विचार होगा।

उन्हें फिर से वही समस्या दें, लेकिन इस बार एक अलग डिजाइन के लिए पूछें

अब, उन्हें ऑब्जर्वर पैटर्न का उपयोग किए बिना सिस्टम को फिर से डिज़ाइन करने के लिए कहें (यदि उन्होंने इसका उल्लेख किया है) - वे चेन ऑफ रिस्पॉन्सिबिलिटी दृष्टिकोण या शायद एक कमांड पैटर्न के लिए जा सकते हैं। आप वास्तव में परवाह नहीं करते हैं, आप जानते हैं कि उनके पास शामिल सिद्धांतों का एक उचित समझ है।

यहां तक ​​कि अगर वे एक पैटर्न आधारित दृष्टिकोण के लिए नहीं जाते हैं, तो जिस तरह से वे समस्या को अपनी संबंधित कार्यक्षमता में नीचे तोड़ने का प्रयास करते हैं, उसे सुनने के बाद परिणाम सामने आएंगे।


1

मैं एक वास्तविक विश्व परिदृश्य चुनता हूं, जो किसी को अच्छी तरह से पता हो real और उन्हें संस्थाओं की पहचान करने के लिए कहें; अभिनेता शामिल; उनके बीच क्या बातचीत होती है; जहां आम सुविधाओं को अमूर्त किया जा सकता है; क्या गुणों पर विचार किया जाना चाहिए।

हां, आप उन्हें यूएमएल को बैठाने और आकर्षित करने के लिए कह सकते हैं, हां आप उन्हें कुछ ओओपी कार्यान्वयन विवरणों पर खोज करने के लिए कह सकते हैं, यह देखने के लिए कि क्या वे "ग्राउंड रनिंग हिट" कर सकते हैं।

लेकिन एक नियोक्ता को वास्तव में अपनी टीम के भीतर की आवश्यकता होती है, एक ऐसा दिमाग है जो शामिल अवधारणाओं को समझता है और जो कुछ भी मुड़ता है उन्हें लागू कर सकता है। विशिष्टताओं को जल्दी से सीखा जा सकता है, जब अवधारणाएं एम्बेडेड होती हैं।


† गहरी परिचित और कोड की मदद से एक कनेक्शन की अनुपस्थिति: सुबह में एक बाथरूम का परिवार का उपयोग; डिनर बना रही हूं; काम करने के लिए एक बस मार्ग; एक कार की विधानसभा।


0

कुछ ऐसा है जो अच्छी तरह से काम करने लगता है, और वास्तव में केवल कुछ सेकंड लगते हैं: उन्हें ऑब्जेक्ट मॉडल डिजाइन करने के लिए कहें। यह क्या के लिए कोई फर्क नहीं पड़ता। यह बिल्कुल तुच्छ हो सकता है। वास्तव में, यह संभवतः तुच्छ होना चाहिए, परीक्षण को अनावश्यक रूप से बाहर नहीं निकालना चाहिए।

यदि वे जो पहली चीज लिखते हैं, वह एक वस्तु है, तो वे ओओ की समझ में अपने साथियों के 99% से पहले ही आगे हैं। यदि वे जो पहली चीज लिखते हैं वह एक वर्ग है, तो कृपया उन्हें बाहर जाने और अगले उम्मीदवार को अंदर भेजने के लिए कहें, और इस बारे में चिंतन करें कि इसे ओओपी क्यों नहीं और सीओपी कहा जाता है।


जबकि मैं समझता हूं कि आपका क्या मतलब है मुझे लगता है कि मैं इसे शाब्दिक रूप से लेने के बारे में थोड़ा सावधान हो सकता हूं। जब मैं 'फ्री थिंकिंग' डिज़ाइन सॉल्यूशंस लेता हूं, तो मैं यूएमएल क्लास नोटेशन का उपयोग करता हूं, भले ही वह वही न हो, जिसका मैं वास्तव में अपने डायग्रामिंग से मतलब रखता हूं।
केन हेंडरसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.