यदि आप पठनीय और आसानी से बनाए रखने योग्य कोड लिख चुके हैं तो आपको कैसे पता चलेगा?


336

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

इन लक्ष्यों को पूरा किया जाता है जब कोई मूल लेखक की विशेषज्ञ सलाह के बिना कोड के साथ निम्नलिखित कर सकता है :

  • कोड को पढ़ना और बुनियादी स्तर पर तर्क के प्रवाह को समझना संभव है।

  • यह एक गहरे स्तर पर समझना संभव है कि इनपुट, आउटपुट और एल्गोरिदम को शामिल करने के लिए कोड क्या कर रहा है।

  • अन्य डेवलपर्स मूल कोड जैसे बग फिक्स या रीफैक्टरिंग में सार्थक बदलाव कर सकते हैं।

  • कोई एक वर्ग या मॉड्यूल जैसे नए कोड लिख सकता है जो मूल कोड का लाभ उठाता है।

हम कोड गुणवत्ता को कैसे निर्धारित या मापते हैं ताकि हम इसे पढ़ने योग्य, समझने योग्य और रखरखाव योग्य जान सकें?


154
अप्रचलित लिंक (एक बार xkcd के लिए नहीं ): osnews.com/images/comics/wtfm.jpg
जैरी कॉफ़िन

3
मैं सिर्फ यह कहूंगा कि जब आप इसे देखते हैं तो आप इसे जान जाते हैं, लेकिन यह तर्क मौलिक रूप से त्रुटिपूर्ण था और इसके मूल रूप में भी शर्मनाक था, कभी भी स्रोत कोड पर लागू नहीं हुआ।
कोनराड रुडोल्फ

6
"निश्चित रूप से आपके दृष्टिकोण में आपका कोड पठनीय है" - यह स्पष्ट नहीं है!
अंकलजीव

24
मैं कहता हूँ कि आप इसे जानते हैं जब आप इसे लिखने के कुछ महीने बाद देखते हैं।
जेएफओ

2
@asfallows: मैंने अपनी पत्नी को कुछ कोड दिखाए, और उसने सोचा कि यह वास्तव में बुरा कोड था, क्योंकि वह इसे पढ़ सकती थी! (इसमें बहुत से अंग्रेजी के शब्द दिख रहे हैं, और पर्याप्त नहीं [@! ^ $ & *) अक्षर ...)
gnasher729

जवाबों:


369

आपका सहकर्मी आपको कोड की समीक्षा करने के बाद बताता है।

आप इसे स्वयं निर्धारित नहीं कर सकते क्योंकि लेखक के रूप में, आप स्वयं द्वारा कहे गए कोड से अधिक जानते हैं। एक कंप्यूटर आपको नहीं बता सकता है, उन्हीं कारणों से जो यह नहीं बता सकता है कि पेंटिंग कला है या नहीं। इसलिए, आपको एक और मानव की आवश्यकता है - सॉफ्टवेयर को बनाए रखने में सक्षम - जो आपने लिखा है उसे देखने के लिए और उसकी राय दें। उक्त प्रक्रिया का औपचारिक नाम सहकर्मी समीक्षा है


6
कुछ भी अनुभवजन्य परीक्षण धड़कता है।
वर्ल्ड इंजीनियर

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

69
मेरे अनुभव में, यह तभी काम करता है जब आपका सहकर्मी जानता है कि क्या अच्छा है और क्या बुरा है। अन्यथा यह इस तरह लगेगा: "आपको उन कोड को उसी तरीके से लिखना चाहिए, जो कोड ढूंढना आसान है"
रंगी लिन

12
@RangiLin, ठीक है, आपका सहयोगी सही हो सकता है।

11
@Rangi आपको अपने सहयोगियों के साथ काम करना होगा। अगर उन्हें आपका कोड कठिन लगता है जो आपके कोड के साथ समस्या है। लंबी अवधि में, आप उन्हें शिक्षित कर सकते हैं, या बेहतर सहयोगियों (आप स्थानांतरित कर सकते हैं या आप भर्ती प्रक्रिया को प्रभावित कर सकते हैं) प्राप्त करने के लिए ... अरे हाँ प्रयास करें, और ऐसा हमेशा याद रखता है कि वे सही हो सकता है।
मार्कज

220

कभी-कभी, जानने का सबसे अच्छा तरीका यह है कि आप छह महीने पहले लिखे गए कोड पर वापस आएं और कोशिश करें और समझें कि यह क्या करने के लिए लिखा गया था।

यदि आप इसे जल्दी से समझते हैं - यह पठनीय है।


28
हाँ, यह अच्छा लगता है (और सच है), लेकिन यह तय करने के लिए बहुत अच्छा तरीका नहीं है कि आज क्या / कैसे करना है ...
माइकल ड्यूरेंट

10
विच्छेदन का सुझाव है कि इसमें
थोड़ा

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

1
@MichaelDurrant हर बार जब आप पुराने कोड की समीक्षा करते हैं, तो आपको ऐसे टुकड़े मिलेंगे, जिन्हें अलग तरह से लिखा जाना चाहिए था और फिर आप उस कोड को ध्यान में रखेंगे जिसे आप "आज" लिख रहे हैं। हां, अच्छा कोड लिखने का तरीका सीखने में समय लगता है।
dj18

1
@MichaelDurrant यह अभी भी एक प्रकार का है, क्योंकि आप सीख सकते हैं कि आप छह महीने पहले क्या अस्पष्ट चीजें कर रहे थे, और आज उन चीजों को नहीं करते हैं।
djechlin

94

यह है:

  1. अनुरक्षणीय अगर आप इसे बनाए रख सकते हैं
  2. आसानी से बनाए रखने योग्य अगर कोई और आपकी मदद के लिए आपसे पूछे बिना इसे बनाए रख सकता है
  3. पठनीय यदि कोई और है , तो उसे पढ़ने पर, डिजाइन, लेआउट और इरादे को सही ढंग से समझता है

1. के लिए असली परीक्षा है (जैसा कि एलेक्स इन पेरिस और क्वांट_देव कहते हैं) कि आप कुछ महीनों के बाद इसे वापस उठा सकते हैं।

2. और 3. के लिए परीक्षण यह है कि कोई और इसे उठा सकता है, और यह पता लगा सकता है कि आपके डिज़ाइन के अनाज का पालन करते हुए अपने कोड को कैसे बढ़ाया या ठीक किया जाए। वे डिजाइन समझ में नहीं कर सकते हैं, यह कैसे समस्या अंतरिक्ष से संबंधित है, या अपने कोड है इरादा प्रयोग की जाने वाली है, वे अनाज भर में एक समाधान के बजाय हैक कर देंगे।

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


2
बग को ठीक करने पर खर्च करने या रखरखाव के कारक के रूप में मौजूदा व्यवहार को संशोधित करने के लिए समय की मात्रा पर विचार कैसे करें ? समान परिवर्तन करने के लिए कम समय की आवश्यकता वाले कोड का एक टुकड़ा अधिक रखरखाव योग्य होना चाहिए?
वीसीडी

1
निर्भर करता है; कभी-कभी किसी संशोधन को अच्छी तरह से बनाने के लिए रिफैक्टरिंग की आवश्यकता होती है (जिसे आप बता सकते हैं कि इसकी आवश्यकता है क्योंकि सुपाठ्य कोड यह स्पष्ट करता है कि इसका उपयोग उस तरह से करने का इरादा नहीं है), जो एक विशेष मामले में हैकिंग से अधिक समय लेता है (जो कि अवैध कोड को प्रोत्साहित करता है क्योंकि आशय स्पष्ट नहीं है )।
बेकार

30

यदि आपका कोड SOLID और DRY के सिद्धांतों का पालन करता है और इसके चारों ओर इकाई परीक्षणों का एक अच्छा सेट है, तो यह संभवतः बनाए रखने योग्य है।

क्या यह पठनीय है? इसे पढ़ें। क्या विधि और चर नाम समझ में आते हैं? आप एक समस्या के बिना कार्यक्रम तर्क का पालन कर सकते हैं? यदि उत्तर हां है, तो कोड पठनीय है।


8
... और आप इसे पढ़ने के बाद, इसे किसी और को पढ़ने की कोशिश करने के लिए सौंप दें।
jcmeloni

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

1
"अगर जवाब हाँ है, तो कोड पठनीय है" ... द्वारा आप । यह देखने के लिए कि क्या यह दूसरों के लिए पठनीय है, दूसरों को इसे पढ़ने की कोशिश करनी चाहिए।

2
IMO, SOLID ओवररेटेड है। खासकर 'एस।' कि या हर कोई इसका गलत मतलब निकालता है।
एरिक रिपेन

मैंने अनगिनत बार कोड में चलाया है जो DRY और SOLID था और फिर भी भयानक था। निम्नलिखित सिद्धांत गलत धारणा दे सकते हैं कि आप जो लिख रहे हैं वह बकवास नहीं है।
जैकब अर्नोल्ड

24

पढ़ना कैसे अचूक कोड लिखने के लिए - रोड़ी ग्रीन, हंसते हुए, और सीखने के द्वारा जीवन के लिए एक नौकरी सुनिश्चित करें

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

निबंध आपको बहुत सारे उदाहरण देता है कि कैसे खराब कोड लिखना है, बहुत सारे मज़ेदार उदाहरणों का उपयोग करना। यह बताता है कि क्रिएटिव मिस-स्पेलिंग , रियूज़ ऑफ़ नेम्स का उपयोग कैसे किया जाए , Reuse of Global Names की निजी के रूप में अत्यधिक सराहना की गई तकनीक ।

एक विनोदी तरीके से निबंध आपको सिखाता है कि कैसे बिना पढ़े और अनमने कोड के उदाहरणों से बचें।

वास्तव में, मुझे यह विश्वास करना कठिन लगा कि कोई भी पाठ में उदाहरणों के समान कोड लिखेगा। वह तब था जब मैं स्कूल से फ्रेश था। लेकिन, कुछ वर्षों तक काम करने के बाद मैं हर दिन पाठ से कोड देखता हूं ...



22

ऐसा कैसे लगता है, इसके बावजूद कुछ उचित उद्देश्य उपाय हैं जिन पर आप विचार कर सकते हैं। C ++ कोडिंग स्टैंडर्ड्स , रीफैक्टरिंग और क्लीन कोड जैसी किताबों में आपके कोड को जज करने के लिए मापदंड की लंबी फेहरिस्त हैं , जैसे सार्थक नाम, फंक्शन साइज, कपलिंग और कॉशन, ऑब्जेक्ट डिजाइन, यूनिट टेस्टिंग, सक्सेसफुल रिफाइनमेंट आदि जैसी चीजें।

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


4
वृद्धिशील सीखने के लिए +1 और रात भर सही बनने की कोशिश नहीं करना
dj18

19

साक्ष्य पुडिंग में है। एक सक्षम व्यक्ति को इसे सौंपने के बाद क्या होता है, यह देखें। यदि उन्हें कोड की कठिनाई के सापेक्ष कई प्रश्न पूछने की आवश्यकता नहीं है, तो आपने एक अच्छा काम किया है।

यह मेरे करियर का शुरुआती सबक था। एक संरक्षक ने कहा, "सब कुछ दस्तावेज़ करें, ताकि आप बाद में कार्यक्रम से बच सकें। यदि आप प्रश्नों का अनुमान नहीं लगाते हैं, जब उत्तर आपके दिमाग में ताज़ा होते हैं, तो आपको उन्हें पता लगाना होगा कि वे कब नहीं हैं।"


10
सावधान रहें कि लोग अपनी अज्ञानता को उजागर करने के डर के कारण सवाल पूछने से बच सकते हैं। आप शायद उन लोगों को पहली जगह में ably यथोचित रूप से सक्षम ’मान रहे होंगे, जो इसे उजागर करने से बचना चाहते हैं। तो सवालों की कमी एक अच्छी बात नहीं हो सकती है जब तक कि आप नहीं जानते कि आप दोनों ईमानदार हैं।
हरमन इंग्लैड्सन

1
@ हरमनइंजाल्डसन - पर्याप्त मेला। बेशक अगर वे सक्षम नहीं हैं और कुछ टूटता है, तो आप इसके बारे में जल्द ही सुनेंगे। "मदद!!!!"
मैथअटैक

यह केवल शीर्ष उत्तर
gnat

17

मैंने सभी उत्तरों को पढ़ा, और मैंने देखा कि किसी ने कोड जटिलता का उल्लेख नहीं किया है।

कोड जटिलता और पठनीयता / स्थिरता के बीच एक तंग संबंध है। कई कोड जटिलता एल्गोरिदम स्कोरिंग हैं, लेकिन मैं सिर्फ मैककेबे जटिलता स्कोरिंग कार्यों के बारे में बात करूंगा।

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

यदि आपको कोड की 10 लाइनें मिली हैं, और उस कोड के माध्यम से 300 रास्ते हैं, तो यह कुछ बहुत ही अचूक कोड है (सुरक्षित और आसानी से बदलने में मुश्किल), और यह शायद बहुत पठनीय नहीं है। इसके विपरीत, यदि आपको कोड की 300 लाइनें मिली हैं, लेकिन इसके माध्यम से केवल 1 रास्ता है (इसकी कोई स्थिति नहीं है), यह पठनीय और आसानी से बनाए रखने योग्य दोनों है।

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


2
इसका उत्तर होना चाहिए। का आकलन करें। अन्य जवाब तथ्य से अधिक राय हैं, अगर मैं इसे समझ सकता हूं, तो यह अच्छा होना चाहिए? जटिलता विश्लेषण का उपयोग करने के लिए पहले उपाय, फिर दोहराव की तलाश के लिए मानव प्रतिक्षेपक, आदि
जॉन रेन्नोर

1
आपका अंतिम पैराग्राफ LOC द्वारा विभाजित मैककेबे स्कोर की कमियों का उल्लेख करते हुए पूरे विचार को अमान्य करता है। यदि आपको अपने कोड के माध्यम से 300 रास्तों की आवश्यकता है , तो आपको पृथ्वी पर ऐसा क्यों लगता है कि यह कोड को अधिक लाइनों का उपयोग करने के लिए अधिक बनाए रखेगा? यह कहने जैसा है कि यदि कोई पुस्तक जटिल विचारों को प्रस्तुत करती है, तो यह संक्षिप्त रूप से संवाद करने की कोशिश करने के बजाय एक बहुत बड़ी पुस्तक होनी चाहिए । -1।
वाइल्डकार्ड

8

एक बिंदु मैं साझा करता हूं कि क्या कोड "मॉड्यूल" में बनाया गया है और जब मैं कहता हूं कि मेरा मतलब है कि आप एक चीज को एक मॉड्यूल में बदल सकते हैं और आसानी से पूरे के साथ काम कर सकते हैं। यह असंबंधित चीजों के बीच प्रभाव को समाप्त करता है। इसके अलावा:

  • कोड का पुन: उपयोग करना आसान है
  • आपका कोड लचीला है (यह मॉड्यूल में निर्माण के साथ संबंध है)
  • DRY - खुद को दोहराएं नहीं

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


8

कुछ टेस्ट / संकेतक:

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

  • क्या डीबग अक्सर wack-a-तिल का खेल बन जाता है, जहाँ एक बग को ठीक करने पर 2+ अधिक की उत्पत्ति होती है।

  • ट्रिगर पुल से कुछ उपयोगी वास्तव में हो रहा है, कितने विधि कॉल करता है? किसी अन्य विधि कॉल पर कितने विधियाँ सटीक या अधिकांश एक ही सटीक मानदंड पास करती हैं?

  • एक कक्षा में एक सरल नई विधि जोड़ने के लिए आपको कितनी फाइलें खोलनी हैं?

  • आपके द्वारा अपनाए गए पैटर्न और प्रथाओं पर विचार करें। क्या आपने ऐसा किया क्योंकि उन्होंने एकदम सही समझ बनाई या क्योंकि किसी ने आपको आश्वस्त किया कि "यह करने का एकमात्र तरीका है?" या इसलिए कि आप इसे फिर से शुरू करना चाहते थे या क्योंकि कुछ रॉकस्टार देव ने ऐसा कहा था।


3
आईडीई के बिना रीडिंग कोड, विशेष रूप से पठनीयता के एक उपाय के रूप में, बेतरतीब लगता है। इस प्रकार के मीट्रिक परिणाम हंगेरियन नोटेशन स्टाइल "सॉल्यूशंस" में हैं, जो वास्तव में अंत में पठनीयता को कम करता है।
रुबेंव

8

अगर किसी ने जो कोड बनाया है, वह आसानी से कैसे पता चलेगा और पठनीय होगा?

इन संपत्तियों की तलाश में आप आसानी से रख-रखाव और पठनीय कोड प्राप्त कर सकते हैं:

  1. वस्तुएँ, विधियाँ और / या कार्य हमेशा एक काम करते हैं।
  2. तरीके और / या फ़ंक्शन संक्षिप्त हैं (जैसा कि "संक्षिप्त लेकिन व्यापक")।
  3. ऑब्जेक्ट, विधियाँ और / या फ़ंक्शंस अनिवार्य रूप से वही करते हैं जो आपको लगता है कि वे अपने नामों के आधार पर करने वाले हैं।
  4. पुन: उपयोग के लिए नियत कोड वास्तव में पुन: उपयोग योग्य है।
  5. अंतिम लेकिन कम से कम, यदि आप कोड को तुरंत इकाई-परीक्षण कर सकते हैं, तो आपके पास बहुत कम से कम एकल-जिम्मेदारी, मॉड्यूलर कोड लिखा होगा।

यदि हम बहुत गन्दा और असंदिग्ध कोड लिख चुके हैं तो हमें कैसे पता चलेगा? क्या गन्दा सॉफ़्टवेयर विकसित करने के लिए कोई निर्माण या दिशानिर्देश हैं?

  1. यदि आप एक विधि के माध्यम से पढ़ रहे हैं और यह स्पष्ट नहीं है कि इरादा क्या था, तो यह सबसे अयोग्य है और संभवतः सबसे खराब होने की संभावना नहीं है।
  2. यदि यह सरल नहीं लगता है, तो यह सरल नहीं है और यह अचूक कोड या कोड का संकेत है जो जल्द ही अचूक हो जाएगा।
  3. यदि कोडबेस में समरूपता (सुसंगतता) की कमी है, तो आप संभावनाहीन कोड देख रहे हैं।

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

1
@ रोया, हां, काफी उचित है। मुझे शायद उस कोड नमूने को कभी नहीं जोड़ना चाहिए था। दी, यह लगभग 3 साल पहले था, लेकिन तब भी, मुझे शायद PHP का उपयोग नहीं करना चाहिए था (मैं इसे अभी देख रहा हूं) देख सकते हैं और तुरंत प्राप्त कर सकते हैं, लेकिन दूसरों के लिए, चाहे वह कितना भी रसीला हो, रेगीक्स एक तत्काल मोड़ है। मैं उत्तर को संपादित करने जा रहा हूं और कोड नमूना छोड़ दूंगा। टिप्पणी के लिए धन्यवाद।
विल मूर III

कोई वस्तु एक काम कैसे कर सकती है?
कोरे तुगाय

@KorayTugay इसे इस तरह से सोचें। यदि कोई ऑब्जेक्ट एक से अधिक एकजुट अवधारणा का वर्णन कर रहा है, तो आपको एक गंध मिली है।
विल मूर III

6

एक शब्द में, अनुभव

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

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

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


3

शुद्धतावादी होने के बिना: कार्यात्मक शैली पसंद करते हैं। इन दिनों अधिकांश भाषाएँ (.NET, रूबी, पायथन, जावास्क्रिप्ट, आदि) इसका समर्थन करती हैं और इसे बढ़ावा देती हैं (जैसे LINQ, underscorejs)।

इसे पढ़ना बहुत आसान है।

var recentTopCustomers = OrderList
    .Where(o => o.Date >= DateTime.Now.AddDays(-5))
    .Where(o => o.Amount > 1000)
    .OrderBy(o => -o.Amount)
    .Take(10)
    .Select(o => o.Customer);

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


2

पढ़ने योग्य और बनाए रखने योग्य कोड: वह कोड, जो पहली नजर में, एक प्रोग्रामर आसानी से समझने में सक्षम होने के लिए पर्याप्त समझ सकता है:

  • इसके इंटरफ़ेस के माध्यम से इसे फिर से उपयोग करें, या
  • यह डिबग, या
  • उसके व्यवहार को बदलो। (एक सुविधा जोड़ें / निकालें), या
  • इसे अनुकूलित करें
  • झसे आज़माओ

यह 'स्पष्टता' को उबलता है। अर्थात, प्रोग्रामर को कोड के किसी विशेष खंड से कितने प्रश्न पूछने होते हैं, इससे पहले कि वे यह सुनिश्चित कर लें कि वे अप्रत्याशित साइड-इफेक्ट्स के बिना वर्तमान कार्य को प्राप्त करने के लिए 'यह समझते हैं कि यह पर्याप्त रूप से पर्याप्त क्या है'।

किताब 'कोड कम्प्लीट, स्टीव मैककॉनेल द्वारा' इस पर काफी चर्चा में है।

वह विभिन्न मेट्रिक्स के माध्यम से जाता है जिन्हें आप निर्धारित कर सकते हैं कि क्या कोड अच्छी गुणवत्ता का है।

यहां एक उदाहरण देखें: http://books.google.co.uk/books?id=3JfE7TGUwvgC&lpg=PT376&pg=PT389#v=onepage&q&f=false


इससे बने बिंदुओं पर पर्याप्त मात्रा में कुछ भी नहीं लगता है और पूर्व उत्तर में बताया गया है
gnat

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

... इसलिए, मेरी राय में, मुझे विश्वास है कि किसी को भी सबसे अच्छी चीज मिल सकती है यदि वे वास्तव में उस किताब को पढ़ने के लिए बनाए रखने योग्य कोड लिखने में रुचि रखते हैं। इसलिए, कई मिनटों की सावधानी के साथ, (जो कि एसओ मॉडरेटर्स की तुलना में अक्सर कई मिनट अधिक सोचा जाता है), मुझे लगता है कि यह ओपी के सवाल का पर्याप्त जवाब नहीं है, बल्कि सबसे अच्छा है
JW01

2

दुष्प्रभाव कम करें (आदर्श रूप से कोई नहीं है)

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

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

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

अतिरंजित बाहरी निर्भरता से बचें

आप अपेक्षाकृत सरल कार्य को पूरा करने के लिए 13 अलग-अलग पुस्तकालयों का उपयोग करके अधिकतम कोड पुन: उपयोग के साथ सबसे अधिक संभावित कोड कोड को लागू करने में सक्षम हो सकते हैं। हालाँकि, तब तक आपके पाठकों के लिए बौद्धिक ओवरहेड स्थानांतरित हो जाता है, जिससे उन्हें 13 विभिन्न पुस्तकालयों के कम से कम भागों को समझने में मदद मिलती है। इस अंतर्निहित जटिलता की तुरंत सराहना की जानी चाहिए, जिसने किसी तीसरे पक्ष के पुस्तकालय को बनाने और बनाने की कोशिश की, जिसे कार्य करने के लिए एक दर्जन अन्य पुस्तकालयों के निर्माण और निर्माण की आवश्यकता थी।

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

कोड का पुन: उपयोग एक संतुलन कार्य है। बहुत अधिक पुन: उपयोग करें और आप बौद्धिक जटिलता को एक-से-कई तरह से हस्तांतरित करते हैं, जैसा कि आपके द्वारा ऊपर बताए गए सरल कोड की 3 पंक्तियों में पाठकों और अनुरक्षकों को कोड की 3 लाइनों की तुलना में कहीं अधिक जानकारी को समझने की लागत पर आता है। । यदि आपका गणित पुस्तकालय बदलता है, तो यह आपके कोड को कम स्थिर बनाता है, इसलिए आपका कोड भी बदल सकता है। पुन: उपयोग बहुत कम है और आप बौद्धिक ओवरहेड को भी गुणा करते हैं और आपका कोड केंद्रीय सुधारों से लाभान्वित होना बंद कर देता है, इसलिए यह एक संतुलनकारी कार्य है, लेकिन यह विचार कि यह एक संतुलनकारी कार्य है, जो कि मामूली नकल के हर छोटे रूप पर मुहर लगाने की कोशिश के बाद से उल्लेख के लायक है एक परिणाम के रूप में बनाए रखने के लिए के रूप में मुश्किल है, अगर अधिक नहीं, विपरीत चरम से।

इसमें से बकवास का परीक्षण करें

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

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

इंटरफ़ेस प्रलेखन

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

इस बीच कोड में इन गुणों का अभाव है, जहां लोगों को यह भी पता नहीं है कि यह क्या करना चाहिए, एसओएल कोई बात नहीं है कि इसके कार्यान्वयन के विवरण कितनी अच्छी तरह से प्रलेखित हैं। स्रोत कोड कैसे लागू किया जाता है, इस पर 20-पृष्ठ का मैनुअल उन लोगों के लिए बेकार है जो यह भी पता नहीं लगा सकते हैं कि पहली जगह में इसका उपयोग कैसे किया जाना चाहिए और यह सभी संभावित परिदृश्यों में भी क्या करना चाहिए।

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

पठनीयता

यह भाग बहुत व्यक्तिपरक है। मुझे वास्तव में इस बात की परवाह नहीं है कि एक तरह की पठनीयता जो मानव विचार प्रक्रियाओं के करीब है। उच्चतम स्तर पर चीजों का वर्णन करने वाला सबसे अच्छी तरह से प्रलेखित कोड अभी भी मेरे लिए पालन करना मुश्किल है अगर लेखक एक समस्या को हल करने के लिए विचित्र और जटिल विचार प्रक्रियाओं का उपयोग करता है। इस बीच 2 या 3 चरित्र नाम का उपयोग कर कोड अक्सर मेरे लिए यह समझना आसान हो सकता है कि क्या तर्क बहुत सीधा है। मुझे लगता है कि आप सहकर्मी की समीक्षा कर सकते हैं और देख सकते हैं कि अन्य लोग क्या पसंद करते हैं।

मैं ज्यादातर रखरखाव और अधिक महत्वपूर्ण बात, स्थिरता में दिलचस्पी रखता हूं। कोड जो बदलने का कोई कारण नहीं ढूंढता है वह शून्य रखरखाव लागत है।


1

मैं कहूंगा कि यह जानने का एक तरीका होगा कि क्या टीम के नए सदस्य कोड उठा सकते हैं, इसे समझ सकते हैं, और दोषों को ठीक करने के लिए इसे संशोधित कर सकते हैं / रिश्तेदार आसानी से नई आवश्यकताओं को पूरा कर सकते हैं।


1

यहाँ एक तकनीक है जिसका मैं उपयोग करना चाहता हूँ:

अपने एक सहकर्मी प्रोग्रामर को कोड दिखाएं और उन्हें समझाएं कि वह क्या करता है। इन चीजों के लिए देखें

1) यदि वे आसानी से कोड रिफ्लेक्टर के ब्लॉक के उद्देश्य को स्पष्ट नहीं कर सकते हैं।
2) यदि उन्हें वर्तमान सेक्शन को समझने के लिए कोड के किसी अन्य सेक्शन में जाना है, तो उसे रिफलेक्टर करें।
4) जब भी आप इस प्रक्रिया के दौरान बोलने का आग्रह करते हैं, कोड के उस भाग को रिफैक्टिंग की आवश्यकता होती है। (कोड स्वयं के लिए नहीं बोल रहा है)।


सहकर्मी प्रोग्रामर को कम से कम समान रूप से अनुभव किया जाता है और प्रोग्रामिंग भाषा और उसके मुहावरों में पढ़ा जाता है। सभी अक्सर इस तरह की तकनीक के लिए लोगों को सबसे जूनियर टीम के सदस्य को भी समझने के लिए गुमराह करने की कोशिश में भाषा की अभिव्यक्ति का एक सबसेट में कोड लिखने के लिए नेतृत्व कर सकते हैं। परिणाम भाषा के एक सबसे नीचे के सबसेट में कोड का एक बड़ा निकाय होने के नाते। और इससे कोई फर्क नहीं पड़ता कि आप भाषा के सबसेट को कितना नीचे दबाते हैं, 500KLOC छोटे भाषा के सबसेट कोड हमेशा 200KLOC कोड को बनाए रखने के लिए अधिक काम होगा जो अधिक अभिव्यंजक सबसेट का उपयोग करता है।
user1703394

यह केवल शीर्ष उत्तर
gnat

-1

सबसे ज्यादा बनाए रखने योग्य कोड वह कोड है जो वहां नहीं है। इसलिए LOC काउंट में जोड़ने के बजाय, LOC काउंट को कम करने वाला नया कोड (भले ही अलगाव में देखा जाए तो थोड़ा कम रख-रखाव) कुल कोड-बेस को केवल उसके आकार को घटाकर अधिक रख-रखाव कर सकता है। इस प्रकार बनाए रखने योग्य कोड के लिए प्राथमिक नियम:

  • अधिकतम DRY।

दूसरे, छिपी निर्भरता की तुलना में स्थिरता के लिए कुछ भी बुरा नहीं है। तो नियम संख्या 2 के लिए:

  • अपनी सभी निर्भरताओं को स्पष्ट करें।

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

क्रॉस-प्रोजेक्ट लाइब्रेरी: वरिष्ठ देव, ट्रिक्स कोड / मुहावरे / तकनीकों की पूरी पीठ प्रोजेक्ट विशिष्ट पुस्तकालयों और सिस्टम बैकएंड: मध्यस्थ डेवलपर्स, सामान की व्याख्या करने के लिए सबसे उन्नत और कठिन से बचें। सीनियर डीआरवाई सुधार के अवसरों की तलाश में इस कोड को गर्त में ले जाएंगे।

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

तो नियम संख्या 3 के लिए:

  • डेवलपर कौशल स्तर से अपना कोड लेयर करें और उसी के अनुसार मेंटेनेंस कोड लिखें।

मैं


1
इस कुछ भी पर्याप्त पेशकश करने के लिए अंक बनाया और में पहले 25 जवाब में विस्तार से बताया नहीं लगता है
कुटकी

@gnat, मैं अन्य उत्तरों में कई (संभावित रूप से हानिकारक) ओवरसिम्प्लीमेंट्स के लिए 'अति सूक्ष्म अंतर' जोड़ने की उम्मीद कर रहा था। विशेष रूप से बिंदु 3 के साथ
user1703394

1
@ user1703394 इस सवाल और इसके जवाब समुदाय विकि हैं। यदि आपको लगता है कि एक मौजूदा उत्तर में सुधार किया जा सकता है तो आप इसे "अन्य उपयोगकर्ताओं के पदों को संपादित" विशेषाधिकार के बिना भी संपादित कर सकते हैं।

-2

इसकी आसानी से पठनीय और आसानी से बनाए रखने योग्य कोड लिखने की कोशिश करना आसान नहीं है, लेकिन इसके लिए आसान और अनुरक्षण कोड लिखना कठिन नहीं है।

OOAD चार अक्षर का शब्द है लेकिन इसे एक बार में समझना मुश्किल है - ऑब्जेक्ट ओरिएंटेड एनालिसिस एंड डिज़ाइन का पालन करें

  1. हमेशा एक अच्छी आवश्यकता को इकट्ठा करने और सटीक समस्या कथन के साथ शुरू करें

    • कुछ उपयोग मामलों के साथ शुरू करें; सिस्टम-उपयोगकर्ता संवाद बातचीत
  2. आपको अपनी वस्तुओं को शिथिल रूप से रखना होगा और सुनिश्चित करना होगा कि आपका कोड दोहरा नहीं होगा - DRY का पालन करें [अपने आप को दोहराएं नहीं]

    • कभी भी आप एक डुप्लिकेट देखते हैं, एक जगह के लिए देखना चाहते हैं
  3. आपका कोड विस्तार के लिए खुला है और संशोधन के लिए बंद है - OCP [खुला-बंद सिद्धांत]
  4. जब आप अपना कोड बदलते हैं तो हमेशा याद रखें - समस्याओं को हल करने के लिए समस्याएं न बनाएं, आईटी केवल कहता है कि आपकी मौजूदा कार्यक्षमता को संशोधित नहीं करता है
  5. यूनिट आपके कोड का परीक्षण करती है
    • जब चीजें गलत हों तो हमेशा अपने कोड का परीक्षण करें
  6. कार्यक्षमता पर काम करते समय हमेशा याद रखें कि मूल OOP (ऑब्जेक्ट ओरिएंटेड सिद्धांतों) और तकनीकों का पालन करें ताकि यह सुनिश्चित किया जा सके कि आपका एप्लिकेशन शुरू से ही अच्छी तरह से डिज़ाइन किया गया है।
    • वस्तुओं को वह करना चाहिए जो उनका नाम दर्शाता है
    • प्रत्येक वस्तु को एक एकल अवधारणा का प्रतिनिधित्व करना चाहिए
  7. हमेशा सिस्टम के समस्या कथन को याद रखें, और जिसमें संदर्भ / डोमेन सॉफ़्टवेयर काम करता है
  8. कुछ कागजी काम भी करो- हाँ जो मेरे लिए काम करता है
    • यूआई से संबंधित सामान और यूएमएल आरेख के कुछ प्रिंटआउट हमेशा काम करते हैं
    • तुम भी व्हाइट बोर्ड से भी विचार मंथन सत्र के स्क्रीन शॉट्स हो सकता है
  9. आर्किटेक्चर लेआउट
  10. यदि संभव हो तो डिजाइन सिद्धांतों को लागू करें
  11. प्रलेखन
    • हमेशा अपने कोड का दस्तावेज़ दें
    • IDE और दस्तावेज़ में भी इंडेंटेशन सेट करें

1
यह वह सिद्धांत है जो उत्तर नहीं देता है कि हम कोड गुणवत्ता को कैसे निर्धारित या मापते हैं ताकि हम इसे पढ़ने योग्य, समझने योग्य और बनाए रखने योग्य जान सकें? प्रश्न
जनवरी डॉगजेन

माना !! लेकिन अगर हम उपर्युक्त सिद्धांतों का पालन करते हैं तो कोड गुणवत्ता, पठनीय, समझने योग्य और स्पष्ट रूप से बनाए रखने योग्य को मापने के लिए आसान है। यदि मैं गलत हूं तो मुझे सही करों।
नरेंद्र परमार

मुझे नहीं पता कि मेरे जवाब में गिरावट क्यों आई, यहां तक ​​कि मैं पहले से ही प्रमुख बिंदुओं को शामिल करता हूं
नरेंद्र परमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.