2010-06-01 23 views
5

मैं कुछ साल के लिए कोडिंग किया गया है और अब भी लगता है कि मेरी जानकारी काफी व्यापक एक पेशेवर बनने के लिए नहीं है। मैंने डिजाइन पैटर्न से संबंधित कुछ किताबों का अध्ययन किया है, लेकिन मुझे पता है कि कई अन्य हैं।पैटर्न और सिद्धांतों की सूची क्या है एक प्रोग्रामर को पता होना चाहिए/पता होना चाहिए?

तो क्या कोई ऐसे पैटर्न और सिद्धांतों को सूचीबद्ध कर सकता है जो आपको लगता है कि बेहतर प्रोग्रामर बनने के लिए सीखना अच्छा है और अधिक पेशेवर?

प्रोग्रामिंग भाषाएं मैं काम करता हूं: सी #, रूबी, जावास्क्रिप्ट।

उत्तर

1

मुझे लगता है कि सबसे अच्छा तरीका है भाषा के बहुत सीखना है। LISP, योजना, पायथन, स्मॉलटाक, एरलांग, प्रोलॉग, एफिल और कई अन्य

और उनके साथ सामान बनाएं।

8

डिज़ाइन पैटर्न के विश्वकोश ज्ञान आपको कहीं भी नहीं ले पाएंगे। का अनुभव उन्हें लागू करेगा। यह आपको सिखाएगा कि उनका उपयोग कब करें और कब नहीं।

उस ने कहा, मूल Design Patterns पुस्तक अभी भी मेरे पसंदीदा में से एक है। जब आप साथ जाते हैं तो अन्य पैटर्न उठाएं।

+5

* और जब नहीं * - निश्चित रूप से याद रखने की सबसे महत्वपूर्ण बात है। बहुत से लोग पहले पैटर्न पागल हो जाते हैं और सबकुछ पैटर्न में बनाने की कोशिश करते हैं, कभी-कभी बहुत आसान कोड को इतना लाभ नहीं होता है कि अब तक कोई लाभ नहीं होता है। –

+0

@ ho1 +1, सच में! "एक हथौड़ा के लिए, सब कुछ एक नाखून की तरह दिखता है"। –

3

कुछ और भाषा-स्वतंत्र कौशल जो मैं वर्तमान में सीख रहा हूं/पूरी तरह से कोडिंग को बेहतर बनाने के लिए काम कर रहा हूं।

  • , स्वच्छ पठनीय और maintainable कोड
  • Refactoring OOP भाषाओं
  • सही ढंग से एक उचित स्रोत नियंत्रण प्रणाली का उपयोग करते हुए के लिए
  • उचित वस्तु डिजाइन लेखन। स्रोतों की गणना नहीं होती है: डी
  • यूनिट-परीक्षण & परीक्षण संचालित विकास
  • डिज़ाइन पैटर्न को सही तरीके से लागू करना। उन्हें सीखना एक बात है, सीखना कब और कहां लागू करना बहुत मुश्किल है।

कुछ लिंक recommnendation सवाल बुक करने के लिए @ अतः:

और बेशक, Pragmatic Programmer books पहले टिप्पणी में उल्लेख किया है के रूप में।

+0

धन्यवाद श्री रॉयस, आप जो भी सूचीबद्ध करते हैं उसके लिए कोई सुझाव पुस्तकें? – pang

+0

मुझे व्यावहारिक बुक्सहेल्फ़ श्रृंखला बहुत उपयोगी लगता है - http://pragprog.com/titles। चूंकि श्रृंखला में अधिकांश बहुत कम हैं, वे अच्छे प्रारंभिक ग्रंथ भी बनाते हैं :) मेरा मानना ​​है कि एसओ में अच्छी किताबों पर बहुत सी पोस्ट हैं, मैं उन्हें ढूंढने की कोशिश करूंगा और फिर जवाब संपादित करूँगा। – anonymous

0

मार्टिन फाउलर की Patterns of Enterprise Application Architecture अन्य डेवलपर्स (जैसे भंडार, सक्रिय रिकॉर्ड, डोमेन मॉडल, कार्य की इकाई) के साथ एक साझा शब्दावली का निर्माण करने के।

डगलस क्रॉकफोर्ड के Javascript: The Good Parts वास्तव में यह समझने के लिए कि जावास्क्रिप्ट कैसे काम करता है।

और मैं वास्तव में टीडीडी (टेस्ट संचालित विकास) में शामिल होने की अनुशंसा करता हूं। अच्छी टीडीडी किताबों का एक गुच्छा है लेकिन यदि आप ब्राउनफील्ड विकास कर रहे हैं (जो हम में से अधिकांश हैं) तो मैं वास्तव में माइकल फेदर के Working Effectively with Legacy Code की सिफारिश करता हूं।

और अंततः यह पुस्तक जो आपको दिखाती है कि कैसे प्रतिक्रिया मिली और साफ कोड हो सकता है: चाचा बॉब का Clean Code

0

कोड लिखने के अलावा आपको कोड पढ़ने का भी प्रयास करना चाहिए। उदाहरण के लिए, ओपन सोर्स प्रोजेक्ट्स से कोड डाउनलोड करें, इसके साथ टिंकर करने का प्रयास करें और समझें कि यह क्या कर रहा है और क्यों। या पिछले प्रोजेक्ट से अपने कोड की समीक्षा करने का प्रयास करें। अब आप अलग-अलग क्या करेंगे? क्या आप अभी भी समझ सकते हैं कि आपने इसे किस तरह बनाया है?

आप चुस्त समुदाय से बाहर आने वाले कुछ अभ्यासों को भी देखना चाहते हैं। विशेष रूप से Test Driven Development आपके कोड की गुणवत्ता में सुधार करने के लिए एक शानदार तरीका के रूप में दिमाग में आता है।

3

सिद्धांत जहां मैं शुरू करूंगा, पैटर्न दूसरे के करीब होने के साथ।

सिद्धांतों: वहाँ एक पूरी बेड़ा है, लेकिन इन लोगों को मैं से व्यावहारिक लाभ प्राप्त कर रहे हैं:

इनमें से बहुत से (जब समूहबद्ध उसे) SOLID (ऑब्जेक्ट उन्मुख डिजाइन) के रूप में जाना जाता है।

पैटर्न:

  • मेरे biggets पसंदीदा एक मील से Dependency Inversion Principle (DIP) है, भी सामान्यतः के रूप में (या कम से कम बहुत के समान) Inversion of control (आईओसी) में जाना जाता है। इंटरफेस के पीछे डेटा एक्सेस कार्यान्वयन को सारणित करना वास्तव में अच्छा है। मार्टिन फाउलर ने इसे एक अलग नाम कहा (माफ करना मेरे सामने 'एंटरप्राइज़ एप्लिकेशन आर्किटेक्चर के पैटर्न' की मेरी प्रति नहीं है)।
  • Lazy Load भी उपयोगी है।
  • Factory pattern एक बहुत ही प्रसिद्ध व्यक्ति है - अच्छे कारण के लिए।
  • Facade pattern ने मुझे परेशानी से दूर रहने में भी मदद की है।

विकिपीडिया में Software design patterns की एक अच्छी अच्छी सूची है, मान लीजिए कि आपने इसे अभी तक नहीं देखा है।

ध्यान में रखना एक अंतिम बात यह है कि तीन बुनियादी प्रकार के पैटर्न हैं (साथ ही बहु-थ्रेडेड/समवर्तीता के लिए चौथी श्रेणी); यह मदद कर सकता है तो बस इन श्रेणियों के बारे में पता करने के लिए और उन्हें ध्यान में रखना जब आप कुछ कर रहे हैं, वे हैं:

  • क्रिएशनल
  • स्ट्रक्चरल
  • व्यवहार
+0

मुझे लगता है कि मार्टिन फाउलर डीआईपी को निर्भरता इंजेक्शन (डीआई) कहते हैं। http://en.wikipedia.org/wiki/Dependency_injection – anonymous

2

मास्टरिंग उपकरण (जैसे प्रोग्रामिंग प्रतिमान, पैटर्न, स्रोत नियंत्रण, इकाई परीक्षण ...) आवश्यक है, लेकिन अपने आप को "पेशेवर" कहने के लिए पर्याप्त नहीं है: आईएमएचओ, वास्तव में पेशेवर प्रोग्रामर का निशान यह समझने की क्षमता है कि उसके ग्राहक को क्या चाहिए। दुर्भाग्यवश, इस तरह के ज्ञान को किताब से सीखना बहुत मुश्किल है।

0

मुझे लगता है, पुस्तक में वर्णित सभी पैटर्न हेड फर्स्ट डिज़ाइन पैटर्न कम से कम एक डिज़ाइनर/प्रोग्रामर को पता होना चाहिए। मैं सीखने के डिजाइन पैटर्न शुरू करने के लिए इस पुस्तक का सुझाव देते हैं। एक और पुस्तक, डिजाइन पैटर्न कार्य पुस्तक अभ्यास करने के लिए भी अच्छा है।

संबंधित मुद्दे