पिछले कुछ महीनों में मैं जावा से ग्रोवी में एक संक्रमण कर रहा हूं और मैं इसके कई लाभों की सराहना कर सकता हूं: कम कोड, बंद, बिल्डर्स, एमओपी जो अंत में Grails की तरह ढांचे को बनाता है, लिखते समय मजाक कर आसानी से परीक्षण आदिक्या आपके पास गतिशील भाषाओं में "गतिशील" बहुत अधिक हो सकता है?
हालांकि, मुझे अपने सहकर्मियों द्वारा "आरोपी" किया गया है कि मेरा कोड पर्याप्त नहीं है। अर्थात्, मैं अभी भी अपने पैरामीटर और फ़ील्ड के लिए प्रकार घोषित करता हूं, बतख टाइपिंग आदि के बजाय विरासत और बहुरूपता का उपयोग करता है। ऐसा लगता है कि इन स्थितियों में यह केवल गतिशील बनाम स्थैतिक नहीं है, बल्कि गतिशील बनाम ऑब्जेक्ट उन्मुख प्रतिमान दुविधा की तरह। उन मामलों में मैं अभी भी ओओ पसंद करते हैं। मुझे लगता है कि ओओ प्रतिमान के मूल आधार में आपको बहुत ही महत्वपूर्ण मूल्य है, जिससे आप अपने कोड संरचनाओं को अमूर्त और संबंधित वास्तविक दुनिया की अवधारणाओं से जोड़ सकते हैं।
मैं अपने मानकों, खेतों, आदि के लिए प्रकार की घोषणा करना चाहिए:
तो, यहाँ विशेष सवाल मैं के साथ मदद की जरूरत है?
क्या मुझे सरल विधि के दौरान कोड के ब्लॉक को बंद करने की घोषणा करनी चाहिए?
मुझे पॉलिमॉर्फिक गतिशील प्रेषण के बजाय बतख टाइपिंग का उपयोग कब करना चाहिए। उदाहरण के लिए, ग्रोवी में मैं जानवर कर सकता हूं। "$ Action"() या def def; Animal.action(), पशु पशु = नए कुत्ते() के बजाय; animal.action()। मैं ओपन-क्लोज़ेड सिद्धांत के संदर्भ में पहली बार समस्या देख सकता हूं, लेकिन ओओ शैली बहुरूपता को प्राथमिकता देने के किसी अन्य कारण से?
मुझे ग्रोवी (यदि कभी) में इंटरफेस का उपयोग कब करना चाहिए?
मुझे यकीन है कि कुछ अन्य समान दुविधाएं हैं जिन्हें मैं लिखने में विफल रहा हूं। मुझे यह भी लगता है कि ये प्रश्न न केवल ग्रोवी के लिए मान्य हैं, बल्कि किसी भी अन्य गतिशील भाषा के लिए मान्य हैं। आपकी राय क्या है?
प्रकारों को घोषित करने का एक अन्य कारण यह है कि एसओएपी वेब सेवाओं को प्रोग्राम करते समय डब्लूएसडीएल में कुछ प्रकार की जानकारी हो सकती है ... – Dan