रॉबर्ट सी मार्टिन अपनी पुस्तक 'Clean Code' के मुट्ठी अध्याय में विभिन्न प्रसिद्ध सॉफ्टवेयर विशेषज्ञों से 'स्वच्छ कोड' की कई परिभाषाओं में प्रदान करता है। आप स्वच्छ कोड कैसे परिभाषित करते हैं?'क्लीन कोड' की परिभाषा
उत्तर
- समझने में आसान।
- संशोधित करने में आसान।
- परीक्षण करने में आसान।
- सही ढंग से काम करता है (केंट बेक का सुझाव - बहुत सही)।
ये चीजें हैं जो मेरे लिए महत्वपूर्ण हैं।
कोड जिसमें विभिन्न मॉड्यूल या कक्षाओं ने स्पष्ट रूप से अनुबंधों को परिभाषित किया है, एक अच्छी शुरुआत है।
कोड मैं संशोधित करने से डरता नहीं हूं।
कोड जो कई जगहों पर नहीं टूटता है जब आप एकल, प्रतीत होता है महत्वहीन परिवर्तन करते हैं। कार्यक्रम के नियंत्रण पथ का पालन करना भी आसान है।
कोड जो किसी भी टिप्पणी को आसानी से समझने की आवश्यकता नहीं है।
मैं कहूंगा कि टिप्पणियों का न्यूनतम उपयोग बिल्कुल भी नहीं: (1) काउंटर-अंतर्ज्ञानी एल्गोरिदम होना असंभव नहीं है; उपयोगकर्ता को जागरूक करने के लिए एक टिप्पणी का उपयोग किया जा सकता है (2) टिप्पणियों का उपयोग लॉजिकल सेक्शन में कोड तोड़ने के लिए किया जा सकता है ताकि पाठक के पास तुरंत एक सिंहावलोकन हो। –
इस टिप्पणी के लिए धन्यवाद। टिप्पणियों के साथ तार्किक खंडों में अपना कोड तोड़ने के लिए, मैं दृढ़ता से असहमत हूं। यदि आपको अपना कोड तोड़ने की आवश्यकता महसूस होती है, तो सही नामों के साथ विधियों का उपयोग करें। counterintuitive एल्गोरिदम के रूप में, यदि आप ऊपर करते हैं, तो मुझे संदेह है कि आपको क्या हो रहा है इसका वर्णन करने के लिए टिप्पणियों की आवश्यकता है। यदि आपको अभी भी आवश्यकता है, तो आपके समाधान को दस्तावेज करना शायद अधिक उपयोगी है, फिर बस अपने कोड पर कुछ टिप्पणियां जोड़ना। –
प्वाइंट-मुक्त हास्केल कोड। (वास्तव में नहीं, हालांकि।)
कोड जो मानव भाषा के करीब जितना संभव हो सके पढ़ता है। मेरा मतलब है कि यह सभी स्तरों पर है: सिंटैक्स से इस्तेमाल किया जाता है, नामांकन सम्मेलन और संरेखण का उपयोग एल्गोरिदम के लिए सभी तरह से किया जाता है, टिप्पणियों की गुणवत्ता और मॉड्यूल के बीच कोड के वितरण की जटिलता।
नामकरण सम्मेलन के लिएसबसे सरल उदाहरण:
if (filename.contains("blah"))
बनाम
if (S_OK == strFN.find(0, "blah"))
इसका एक हिस्सा वातावरण पर निर्भर करता है/एपीआई इस्तेमाल किया, लेकिन इसमें से अधिकांश पाठ्यक्रम के डेवलपर की जिम्मेदारी है
पुन: प्रयोज्य कोड भी महत्वपूर्ण है। इसलिए कोड की गुणवत्ता केवल महत्वपूर्ण नहीं है, लेकिन आप कहां डालते हैं। उदाहरण, नियंत्रक में व्यावसायिक तर्क एक बेकार कोड
- 1. क्लीन + रीबिल्ड और क्लीन + बिल्ड
- 2. एक्सकोड 4 "क्लीन" बनाम "क्लीन बिल्ड फ़ोल्डर"
- 3. स्पेगेटी PHP की परिभाषा?
- 4. कोक सबूत में एक रणनीति की परिभाषा की परिभाषा
- 5. नियमित भाषाओं की परिभाषा
- 6. अपरिवर्तनीयता की वास्तविक परिभाषा?
- 7. "लिस्प फॉर्म" की परिभाषा?
- 8. "सिंक्रनाइज़ेशन आदिम" की परिभाषा
- 9. जावास्क्रिप्ट क्लीन यूआरएल रेगेक्स
- 10. टेम्पलेट विशेषज्ञता की एकाधिक परिभाषा
- 11. एक्लिप्स के क्लीन कमांड
- 12. गिट: गिट क्लीन
- 13. रेल बंडल क्लीन
- 14. सीएमके कस्टम क्लीन कमांड
- 15. फोर्स मेवेन क्लीन
- 16. एचटीएमएल व्हाइटस्पेस नियमों की परिभाषा?
- 17. ओएथ 2.0 ग्राहकों की परिभाषा
- 18. 'marshalling' शब्द की सटीक परिभाषा
- 19. एक लीफलेट परत की परिभाषा
- 20. सी ++ सीरियलाइजेशन क्लीन एक्सएमएल एक्सएसटीआरएएम
- 21. मैवेन पैकेज पर ऑटो-क्लीन
- 22. गिट क्लीन को पूर्ववत करना
- 23. केकेपीएचपी और सिंपलटेस्ट क्लीन इंस्टॉल
- 24. परिभाषा
- 25. InitializeComponent() की बहुत सरल परिभाषा; विधि
- 26. off_t प्रकार की पूरी परिभाषा कहां खोजें?
- 27. लिस्प कंस सेल की परिभाषा क्या है?
- 28. बाहरी चार ** पर्यावरण की परिभाषा कहां है?
- 29. `struct ap_conf_vector_t` की परिभाषा कहां है?
- 30. मित्र वर्ग और एक्सेसर अनुभागों की परिभाषा
यह भी सही ढंग से काम करना चाहिए। अन्यथा यह मेरे लिए एक अच्छी परिभाषा की तरह लगता है। –
अच्छा बिंदु, मैंने इसे उत्तर में जोड़ा। – Ree