मैं सीनियर्स के बीच जूनियर डेवलपर हूं और उनकी सोच, तर्क को समझने के साथ बहुत संघर्ष कर रहा हूं।
मैं Domain-Driven Design (DDD) पढ़ रहा हूं और समझ नहीं पा रहा हूं कि हमें इतने सारे वर्ग बनाने की आवश्यकता क्यों है। यदि हम सॉफ्टवेयर डिजाइन करने की उस पद्धति का अनुसरण करते हैं, तो हम 20-30 वर्गों के साथ समाप्त हो जाते हैं, जिन्हें अधिकांश दो फाइलों और 3-4 कार्यों के साथ बदला जा सकता है। हां, यह गड़बड़ हो सकता है, लेकिन यह बहुत अधिक बनाए रखने योग्य और पठनीय है।
किसी भी समय मैं यह देखना चाहता हूं कि मुझे किस तरह के EntityTransformationServiceImpl
वर्ग, इंटरफेस, उनके फ़ंक्शन कॉल, कंस्ट्रक्टर, उनके निर्माण और इतने पर का पालन करने की आवश्यकता है।
सरल गणित:
- डमी कोड की 10 लाइनें बनाम 10 कक्षाएं एक्स 10 (मान लीजिए कि हमारे पास इस तरह के लॉजिक्स बिल्कुल अलग हैं) = गंदे कोड की 600 लाइनें बनाम 100 कक्षाएं + उन्हें लपेटने और प्रबंधित करने के लिए कुछ और; निर्भरता इंजेक्शन जोड़ने के लिए मत भूलना।
- गन्दे कोड की 600 पंक्तियाँ पढ़ना = एक दिन
- 100 कक्षाएं = एक सप्ताह, फिर भी भूल जाओ कि कौन क्या करता है, कब
हर कोई कह रहा है कि इसे बनाए रखना आसान है, लेकिन किस लिए? हर बार जब आप नई कार्यक्षमता जोड़ते हैं, तो आप कारखानों, संस्थाओं, सेवाओं और मूल्यों के साथ पांच और कक्षाएं जोड़ते हैं। मुझे ऐसा लगता है कि इस तरह का कोड गड़बड़ कोड की तुलना में बहुत धीमा है।
मान लीजिए, यदि आप एक महीने में 50K LOC गन्दा कोड लिखते हैं, तो DDD चीज़ को बहुत सारी समीक्षाओं और परिवर्तनों की आवश्यकता होती है (मुझे दोनों मामलों में परीक्षण में कोई आपत्ति नहीं है)। अधिक नहीं तो एक साधारण जोड़ में सप्ताह लग सकता है।
एक वर्ष में, आप बहुत सारे गन्दे कोड लिखते हैं और यहां तक कि इसे कई बार फिर से लिख सकते हैं, लेकिन DDD शैली के साथ, आपके पास अभी भी गन्दे कोड के साथ प्रतिस्पर्धा करने के लिए पर्याप्त सुविधाएँ नहीं हैं।
कृपया समझाएँ। हमें इस डीडीडी शैली और बहुत सारे पैटर्न की आवश्यकता क्यों है?
UPD 1 : मुझे बहुत सारे शानदार उत्तर मिले, क्या आप लोग कृपया टिप्पणी कहीं जोड़ सकते हैं या पढ़ने की सूची के लिंक के साथ अपना उत्तर संपादित कर सकते हैं (यह सुनिश्चित नहीं कर सकते हैं कि कौन सी शुरुआत से, डीडीडी, डिज़ाइन पैटर्न, यूएमएल, कोड कम्प्लीट, रिफलेक्टिंग, प्रैगमैटिक)। .. इतनी अच्छी किताबें), निश्चित रूप से अनुक्रम के साथ, ताकि मैं भी समझना शुरू कर सकूं और आप में से कुछ के रूप में वरिष्ठ बन सकूं।