कोड कम्पलीट के कौन से भाग समय की कसौटी पर खरे नहीं उतरे हैं? [बन्द है]


14

मैं शेल्फ पर कोड पूरा देख रहा था, सोच रहा था, "पौराणिक पुरुष महीने के बाहर, यह समय की कसौटी पर खड़े होने के लिए कुछ बड़े बाजार सॉफ्टवेयर इंजीनियरिंग पुस्तकों में से एक हो सकता है।" इस कारण से, मैं इसे फिर से शुरू करने के लिए कूदने के बारे में सोच रहा हूं।

मैं उत्सुक हूँ - क्या किसी और ने इसे हाल ही में दूसरा रूप दिया है? मैंने ऐसा किया, क्या आपने कुछ भी देखा वह बहुत गलत था?

यह एक हमला नहीं है, और एक पुस्तक समीक्षा के लिए अनुरोध नहीं है - मैं अधिक रुचि रखता हूं जिसमें विचार वर्षों में बदल गए हैं।

और कृपया - के बारे में कोई टिप्पणी नहीं, "Demarco / Spewak / Zachman समय की कसौटी पर खड़ा था ..." मैं विशेष रूप से कोड पूरा करने में रुचि रखता हूं क्योंकि यह जमीन की चौड़ाई, और क्षेत्र में प्रभाव की चौड़ाई।


1
इसकी एक त्वरित पुन: परीक्षा ने मुझे झुंझलाहट की याद दिला दी है जहाँ पाठ उदाहरणों के विपरीत प्रतीत होता है, और पुस्तक के विभिन्न भाग विभिन्न चीजों की सलाह देते हैं। इसके अलावा, यह अभी भी बहुत अच्छा लगता है।
इज़काता

@ इज़कट - उदाहरण?
मैथअटैक

उत्तर के रूप में जोड़ा गया
इज़्काटा

1
अच्छा सवाल है, हाल ही में मैं विचार कर रहा हूं कि क्या इसे फिर से पढ़ना है। मुझे आश्चर्य है कि क्या एक नए संस्करण के लिए योजनाएं हैं?
एंटोनियो २०१ ए

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

जवाबों:


11

कोड पूरा कई कालातीत अवधारणाओं को शामिल करता है जैसे:

  • मजबूत सामंजस्य
  • ढीला युग्मन
  • अच्छे नियमित नाम
  • रक्षात्मक प्रोग्रामिंग
  • स्व-दस्तावेज कोड
  • सॉफ्टवेयर समीक्षाएँ
  • इकाई का परीक्षण

जो आज निश्चित रूप से प्रासंगिक हैं।

CC में शामिल कुछ अवधारणाएँ अब नई भाषाओं में वाक्यविन्यास रूप से लागू की गई हैं, उदाहरण के लिए C # सब-स्कॉप में चर को इस तरह से परिभाषित करने की अनुमति नहीं देता है जो एक सुपर-स्कॉप्ड परिभाषा को छुपाता है।

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

सभी ने बताया, जो मैं याद कर सकता हूं (और सीसी की मेरी आदरणीय प्रतिलिपि के अंदर एक त्वरित झलक), मैं कहूंगा कि यह निश्चित रूप से समीक्षा के लायक है।

हालाँकि, मुझे नहीं लगता कि यह द मैथिली मैन मंथ की सही मायने में कालातीत प्रकृति के लिए उगता है। MMM मुद्दों को संबोधित करता है कि कौन काम कर रहा है, वे कैसे और क्यों कर रहे हैं; साथ ही (मानव) संचार की लागत और जटिलता। MMM उन मुद्दों को संबोधित करता है जो हमारे द्वारा की जाने वाली हर चीज के लिए मूलभूत हैं। सीसी, तुलना में, हम इसे कैसे करते हैं के व्यावहारिक और व्यावहारिक मुद्दों पर ध्यान केंद्रित करते हैं। एक और तरीका रखो, अगर एक परियोजना अनुसूची के पीछे है, और एक प्रबंधक टीम में 100 लोगों को जोड़ने का फैसला करता है, तो समझ में आने वाले कोड लिखने से वास्तव में कोई फर्क नहीं पड़ेगा।

CC वास्तव में हमारे उद्योग की महत्वपूर्ण समस्याओं का समाधान नहीं करता है; लेकिन यह अक्सर असंभव स्थिति में सबसे अच्छे परिणाम के लिए प्रयास करने के लिए एक अच्छी नींव प्रदान करता है।

मैं निश्चित रूप से उन दोनों पर विचार करूंगा जो किसी के लिए पढ़ना आवश्यक है जो सॉफ्टवेयर विकास की परवाह करता है; और जब भी आपको रिफ्रेशर की आवश्यकता हो, मैं एमएम को फिर से पढ़ने की सलाह दूंगा। यदि आप एक विकास दल का नेतृत्व कर रहे हैं, समूह के मानकों की स्थापना कर रहे हैं, या नए डेवलपर्स को प्रशिक्षित कर रहे हैं, तो CC का फिर से उपयोग करने लायक है; उसके बाहर, मुझे व्यक्तिगत रूप से पता चलता है कि मैंने बहुत पहले सीसी में सामग्री को आंतरिक कर दिया था और दैनिक आधार पर इसका अभ्यास करता था।

आशा है कि मदद करता है। वे निश्चित रूप से मेरे पसंदीदा में से दो हैं।


शायद मुझे एमएम के लिए एक समान क्यू बनाना चाहिए। शायद ब्रूक्स के लिए आसान था क्योंकि उन्होंने एक प्रबंधन पुस्तक लिखी थी।
मैथअटैक

क्या अध्याय 33 में "काम कौन कर रहा है" के मुद्दे पर सीसी को संबोधित नहीं करता है: व्यक्तिगत चरित्र?
mg1075

4

कुल मिलाकर, किताब अभी भी अच्छी है। हालाँकि, मेरे पास इसके साथ कुछ छोटे मुद्दे हैं:

  • अध्याय 17 ("असामान्य नियंत्रण संरचनाएं") एक समारोह से जल्दी लौटने के रूप में गार्ड के बयानों का उल्लेख करता है, लेकिन अध्याय 15 में दिए गए उदाहरण "यदि" कथन गार्ड के बयानों के खिलाफ सलाह देते हैं । (पुस्तक में गार्ड क्लॉज / शुरुआती रिटर्न)
  • खंड 14.2 में उदाहरण स्वयं विरोधाभास प्रतीत होता है। यह पहले "खराब" कोड का एक उदाहरण देता है, और इसे "अच्छा" कैसे बनाया जाए। इसके बाद यह कहा गया है कि, जब संबंधित बयानों को एक साथ समूहित किया जाता है, तो डेटा या कार्य समानता द्वारा "अच्छा" होगा। "बुरा" उदाहरण तब भी "अच्छा" माना जाना चाहिए - और, मुझे लगता है, "अच्छा" उदाहरण की तुलना में पढ़ने के लिए बहुत आसान है, क्योंकि सभी डेटा की गणना एक ही दर पर की जा रही है - आपके सिर में पकड़ की स्थिति कम है ।
  • अध्याय 23, डिबगिंग, जहां प्रिंट स्टेटमेंट को बुलेट बिंदु में ग्रामीण किया जाता है। जबकि मैं मानता हूं कि उन्हें एकमात्र उपकरण नहीं होना चाहिए, वे कोड की सीमा को कम करने में बहुत सहायक होते हैं जहां बग होता है। यह देखने के लिए कि डेटा आपके द्वारा अपेक्षित नहीं है, जहां डिबगिंग के लिए एक अच्छा प्रारंभिक बिंदु देता है, उस पर कुछ छिड़कें, उस कोड के आधार पर, जिसके साथ आप काम कर रहे हैं।

मेरे पास एक और फ़ंक्शन फ़ंक्शन को शामिल करने की अस्पष्ट स्मृति है, लेकिन फिलहाल वह नहीं मिल सकती है। हो सकता है कि यह एक और किताब हो।


6
हाँ, वह प्रिंट स्टेटमेंट के बारे में गलत था और वह अभी भी गलत है। जब एक अज्ञात स्थान प्रिंट और लॉग में बग के साथ सामना किया जाता है, तो आमतौर पर मेरी पसंद का उपकरण होता है।
लॉरेन पीचटेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.