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