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