2009-06-11 10 views
5

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

उत्तर

12

चूंकि आप उल्लेख करते हैं कि आप मेटा प्रोग्रामिंग की अंधेरे कला सीखना चाहते हैं तो मैं आंद्रेई अलेक्जेंड्रेस्कू द्वारा "आधुनिक सी ++ डिजाइन" की सिफारिश करूंगा।

मेटा प्रोग्रामिंग एक बहुत ही जटिल क्षेत्र है और अधिकांश समय की आवश्यकता नहीं है। एक बार जब आप इसके बारे में जानेंगे, तो यह सोचना बहुत आसान है कि यह आपकी सभी समस्याओं को हल कर सकता है। यह आपका नया पसंदीदा हथौड़ा बन जाता है।

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

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

संक्षेप में आपको बहुत ही कम से कम मेटा प्रोग्रामिंग की आवश्यकता नहीं है जब तक कि आप एक लाइब्रेरी लेखक नहीं हैं। और आप एक बहुत ही सफल पुस्तकालय उपयोगकर्ता के बिना पुस्तकालय लेखक नहीं हो सकते हैं।

+0

हाँ जोड़ता है, आपका उत्तर मुझे बहुत मदद करता है, धन्यवाद – cppguy

15

यदि आप सी ++ में शुरू कर रहे हैं, तो बूस्ट सोर्स कोड शायद सबसे अच्छी जगह नहीं है। यह वह जगह है जहां जादूगर लटकते हैं और वे टेम्पलेट जादू में सौदा करते हैं। मुझे लगता है कि एक बेहतर प्रारंभिक बिंदु स्कॉट मायर्स और हर्ब सटर किताबें हैं (उस क्रम में)।

स्कॉट की पुस्तक के कुछ संस्करण थोड़ा सा दिनांकित हो सकते हैं लेकिन वे अभी भी मूलभूत सिद्धांतों में मजबूत हैं। हर्ब की किताबें कई बार पढ़ने लायक हैं और एक अमूल्य उपकरण हैं। एक बार जब आप उन दोनों लेखकों के माध्यम से प्राप्त कर लेंगे, तो बूस्ट सोर्स कोड से निपटने के लिए एक अच्छा समय होगा।

  • स्कॉट मायर्स: Effective C++
  • स्कॉट मायर्स: Effective STL
  • Herb Sutter - वास्तव में मैं इस सूची से शीर्षक में प्रभावी और C++ के साथ कुछ भी करने के लिए जाना होगा।
+0

क्या आप मेरे पीछे हैं;) –

+2

@ ओजे, आप बस पर्याप्त तेज़ी से नहीं बढ़ रहे हैं;) – JaredPar

+0

यह देखना मजेदार है। आपके पास दोस्तों के समान पसंदीदा टैग होना चाहिए। –

14

मैं बूस्ट कोड को पढ़ने के तरीके पर सलाह नहीं दे सकता, लेकिन मैं कुछ अन्य सलाह दे सकता हूं।

पढ़ना बंद करें और लिखना शुरू करें :) पढ़ना मूल्यवान है, लेकिन जब तक आप स्वयं कोड लिखना शुरू नहीं करते हैं तब तक आप कहीं भी कहीं नहीं सीखेंगे। मूल बातें के साथ शुरू करो। शुरुआती किताबें पढ़ें और नमूने टाइप करें (कॉपी और पेस्ट न करें)। आप त्रुटियों को ठीक करने के बारे में जानेंगे जो आपके गलत परिणाम हैं। सरल अनुप्रयोगों के लिए अपने कुछ विचारों के साथ खेलो और वहां से जाएं।

बूस्ट सोर्स कोड पढ़ने से शुरू करना भाषा से खुद को डराने का एक निश्चित अग्नि तरीका है और/या बहुत सारे प्रश्नों के साथ बहुत उलझन में है।

छोटा शुरू करें, अपना रास्ता तैयार करें।

+2

हां, यदि आप बढ़ावा देने में रुचि रखते हैं, तो वास्तव में इसका उपयोग शुरू करें - एक बार जब आप इसका उपयोग कर सकें, तो आप दृश्यों को भी देख सकते हैं और आपके पास होगा – none

1

हाँ, कुछ बूस्ट पुस्तकालयों में कुछ सचमुच भयानक चीजें हैं। यदि आप कुछ बहुत अच्छे स्रोत कोड को पढ़ना चाहते हैं, तो WebKit या Google ओपन सोर्स प्रोजेक्ट्स (जैसे क्रोम या प्रोटोबफ्स) की जांच करने का प्रयास करें।

+0

हाँ, Google ओपन सोर्स कोड एक साथ अच्छा लटका रहा है, इसकी बेहतर समझ है, और मैंने अपने "ctemplate" कोड – cppguy

+0

हाँ का कुछ हिस्सा पढ़ा है, यह बात ऐप्पल और Google जैसी कंपनियों के साथ है, उनका ओपन सोर्स कोड है वास्तव में कोड की समीक्षा की गई, और कोडिंग के लिए स्टाइल नियम और सर्वोत्तम अभ्यास वास्तव में लागू किए गए हैं। और आमतौर पर परियोजना का मार्गदर्शन करने वाला बहुत अनुभवी और शानदार व्यक्ति होता है। एकमात्र गैर-कॉरपोरेट ओपन सोर्स प्रोजेक्ट मैंने देखा है कि एसवीएन प्रोजेक्ट की उस तरह की स्थिरता के करीब भी आता है, लेकिन इसकी सीधी सी, सी ++ नहीं है। –

8

मुझे लगता है कि बूस्ट टेम्पलेट आदि जैसे कई उन्नत सी ++ फीचर्स का उपयोग करता है। बूस्ट लाइब्रेरी बहुत जटिल होते हैं क्योंकि वे एसटीएल जैसी चीजों के साथ संगत होने के लिए सख्त प्रोग्रामिंग मानकों और शैलियों का पालन करने का प्रयास करते हैं।

काफी सरलता से, यदि आप इसे समझ में नहीं आते हैं, तो आप शायद अपने सिर पर हैं। और यदि आप इसे समझते हैं, तो आपको वास्तव में इसे पढ़ने की ज़रूरत नहीं है। यदि आप नहीं जानते कि कैसे तैरना है, तो पानी में कूद न करें ... आपने अनिवार्य रूप से झरने को तैरने की कोशिश की है।

+1

भी, बूस्ट द्वारा आंतरिक रूप से संबोधित किए जा रहे कई क्रॉस-प्लेटफ़ॉर्म मुद्दों को हल किया गया है, जो जटिलता की एक और परत – none

0

आईडी सुझाव देता है कि आप लिपमान के प्रीमियर ( की अन्य भिखारी किताबें) पसंद करते हैं। फिर, जब आप कोड के साथ सहज महसूस करते हैं, तो आप अपने क्षितिज को विस्तृत करने के लिए हर्ब सटर, अलेक्जेंड्रेस्कू पर जा सकते हैं, सॉफ्ट देव पर अधिक संपूर्ण दृश्य प्राप्त कर सकते हैं।और सबसे महत्वपूर्ण रूप से - अच्छी तरह से cede करने में सक्षम होने के लिए एक बहुत कोड कोड करना है, क्योंकि यह एक कौशल है जैसे किसी अन्य और यह मास्टर के लिए अभ्यास लेता है।

पीएस> यदि आपको विश्वास है कि आप अन्य पुस्तक (पुस्तक) के साथ शुरुआत से स्ट्रॉस्ट्रप को चुन सकते हैं। मुझे नहीं लगता कि लेखकों के रूप में पूर्ण सी ++ पर एक और स्रोत है।

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