2009-06-05 29 views
23

रॉबर्ट सी मार्टिन अपनी पुस्तक 'Clean Code' के मुट्ठी अध्याय में विभिन्न प्रसिद्ध सॉफ्टवेयर विशेषज्ञों से 'स्वच्छ कोड' की कई परिभाषाओं में प्रदान करता है। आप स्वच्छ कोड कैसे परिभाषित करते हैं?'क्लीन कोड' की परिभाषा

उत्तर

36
  • समझने में आसान।
  • संशोधित करने में आसान।
  • परीक्षण करने में आसान।
  • सही ढंग से काम करता है (केंट बेक का सुझाव - बहुत सही)।

ये चीजें हैं जो मेरे लिए महत्वपूर्ण हैं।

+7

यह भी सही ढंग से काम करना चाहिए। अन्यथा यह मेरे लिए एक अच्छी परिभाषा की तरह लगता है। –

+1

अच्छा बिंदु, मैंने इसे उत्तर में जोड़ा। – Ree

1

कोड जिसमें विभिन्न मॉड्यूल या कक्षाओं ने स्पष्ट रूप से अनुबंधों को परिभाषित किया है, एक अच्छी शुरुआत है।

17

कोड मैं संशोधित करने से डरता नहीं हूं।

1

कोड जो कई जगहों पर नहीं टूटता है जब आप एकल, प्रतीत होता है महत्वहीन परिवर्तन करते हैं। कार्यक्रम के नियंत्रण पथ का पालन करना भी आसान है।

10

कोड जो किसी भी टिप्पणी को आसानी से समझने की आवश्यकता नहीं है।

+0

मैं कहूंगा कि टिप्पणियों का न्यूनतम उपयोग बिल्कुल भी नहीं: (1) काउंटर-अंतर्ज्ञानी एल्गोरिदम होना असंभव नहीं है; उपयोगकर्ता को जागरूक करने के लिए एक टिप्पणी का उपयोग किया जा सकता है (2) टिप्पणियों का उपयोग लॉजिकल सेक्शन में कोड तोड़ने के लिए किया जा सकता है ताकि पाठक के पास तुरंत एक सिंहावलोकन हो। –

+0

इस टिप्पणी के लिए धन्यवाद। टिप्पणियों के साथ तार्किक खंडों में अपना कोड तोड़ने के लिए, मैं दृढ़ता से असहमत हूं। यदि आपको अपना कोड तोड़ने की आवश्यकता महसूस होती है, तो सही नामों के साथ विधियों का उपयोग करें। counterintuitive एल्गोरिदम के रूप में, यदि आप ऊपर करते हैं, तो मुझे संदेह है कि आपको क्या हो रहा है इसका वर्णन करने के लिए टिप्पणियों की आवश्यकता है। यदि आपको अभी भी आवश्यकता है, तो आपके समाधान को दस्तावेज करना शायद अधिक उपयोगी है, फिर बस अपने कोड पर कुछ टिप्पणियां जोड़ना। –

1

प्वाइंट-मुक्त हास्केल कोड। (वास्तव में नहीं, हालांकि।)

2

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

नामकरण सम्मेलन के लिए

सबसे सरल उदाहरण:

if (filename.contains("blah")) 

बनाम

if (S_OK == strFN.find(0, "blah")) 

इसका एक हिस्सा वातावरण पर निर्भर करता है/एपीआई इस्तेमाल किया, लेकिन इसमें से अधिकांश पाठ्यक्रम के डेवलपर की जिम्मेदारी है

1

पुन: प्रयोज्य कोड भी महत्वपूर्ण है। इसलिए कोड की गुणवत्ता केवल महत्वपूर्ण नहीं है, लेकिन आप कहां डालते हैं। उदाहरण, नियंत्रक में व्यावसायिक तर्क एक बेकार कोड

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