2008-09-12 10 views
68

ऑब्जेक्ट उन्मुख प्रोग्रामिंग में अपने कौशल को बेहतर बनाने के लिए एक अच्छी चुनौती क्या है?वस्तु उन्मुख प्रोग्रामिंग (ओओपी) कौशल सीखने या सुधारने के लिए अच्छी चुनौतियों/कार्यों/अभ्यास

इस सर्वेक्षण के पीछे विचार यह है कि ओओपी सीखने के लिए कौन से अभ्यास उपयोगी हैं।

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

चुनौतियों के समाधान को "कैसे करें ..." प्रश्न के उत्तर के रूप में पोस्ट किया जा सकता है और यहां से लिंक किया जा सकता है।

उदाहरण के लिए:

  • चैलेंज - प्रारंभकर्ता
  • दलील - - एक आखिरी में-फर्स्ट-आउट ढेर
  • कौशल स्तर को लागू वस्तुओं

उत्तर

39

Building Skills in Object-Oriented Design एक निःशुल्क पुस्तक है जो उपयोग की जा सकती है। विवरण निम्नानुसार है

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

+1

मैं यह दूसरा - वास्तव में अच्छी किताब। –

1

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

8

चुनौती: अपनी पसंद की भाषा में अपनी वेबसाइट/सेवा एपीआई के लिए एक रैपर लिखें, जो पहले से मौजूद नहीं है (उदा। ZenDesk API सी # में लिपटे रैपर)। दूसरों के उपयोग के लिए खुले स्रोत के रूप में रैपर को रिलीज़ करें।

कौशल स्तर: मध्यवर्ती

दलील को शुरुआती: वस्तुओं/कक्षाओं का एक सार्थक सेट में एक 3 पार्टी वेब सेवा एपीआई एक्सट्रपलेशन करने के लिए कैसे, अपने चुने हुए भाषा में आसान है कि एपीआई का पुन: उपयोग कर रही है यह जानने के लिए।

4

मूल बातें सीखने के बाद, "गैंग ऑफ चार" डिज़ाइन पैटर्न पुस्तक का अध्ययन करें।

http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1221488916&sr=8-1

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

+5

जीओएफ के सभी उचित सम्मान के साथ, "डिजाइन पैटर्न में पहले सिर" एक और अधिक सुखद पढ़ने वाला है। – CaptainHastings

+2

जीओएफ परम है और हमें इसके बारे में डरना नहीं चाहिए। सोने से पहले इसे रोजाना पढ़ें। – kta

0

एक दिए गए कार्य को "ओओपी" होने के साथ बहुत कम करना पड़ता है, यह आप इसे कैसे ग्रेड करते हैं इसके बारे में अधिक है।

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

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

3

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

2

मुझे CRC cards मिला है जो अच्छी ओओ डिजाइन सीखने, पढ़ाने और निर्माण में काफी प्रभावी है।

13

स्क्रैच से एक चुनौतीपूर्ण प्रोग्राम लिखें। इसका उपयोग करने के लिए कुछ लोगों (लगभग पांच, जो करने योग्य होना चाहिए) प्राप्त करने का प्रयास करें। उनके परिवर्तन अनुरोधों का जवाब दें।

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

+5

+1 ** उनके परिवर्तन अनुरोधों का जवाब दें ** –

संबंधित मुद्दे