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