32 पॉइंट द्वारा kciter1 2023-12-15 | 9 टिप्पणियां | WhatsApp पर शेयर करें
  • सुंदरता क्या है?
    • सुंदरता वह मूल्य है जिसे इंसान महसूस करता है
    • जो आश्चर्य, नवीनता, स्थिरता, आराम, सरलता आदि दे
    • इसे आश्चर्यजनक और स्वाभाविक चीज़ों में बाँटा जा सकता है
    • सुंदरता (बोध) महसूस करने के लिए कुछ बुनियादी ज्ञान आवश्यक होता है
    • सुंदरता जीवित रहने के लिए है। जिसे समझा न जा सके, उसे देखकर असहजता महसूस होती है
  • सुंदर कोड की परिभाषा
    • कोड अकेले काम नहीं करता, इसलिए जितना अधिक सुंदर हो उतना अच्छा है
    • आदर्श रूप में ऐसा कोड जिसमें पढ़ते समय एक भी अटकने वाली जगह न हो
    • स्वाभाविक कोड अच्छा होता है
  • सुंदर कोड के चार घटक
    • सामाजिक, विश्वसनीय, रैखिक, और घोषणात्मक
      • सामाजिक और विश्वसनीय पक्ष स्थिरता का पीछा करते हैं
      • रैखिक और घोषणात्मक पक्ष सौंदर्यबोध का पीछा करते हैं
    • सामाजिक कोड
      • ऐसा कोड जो आसपास की सारी परिस्थितियों को ध्यान में रखे
      • परंपराओं, नियमों और मिशन का पालन करना
      • भाषा की सामाजिकता के समान
    • विश्वसनीय कोड
      • ऐसा कोड जिसे भरोसे के साथ इस्तेमाल किया जा सके
      • यदि भरोसा न हो, तो वह ऐसा कोड बन जाता है जिसे खुद जाँचकर देखना पड़े
      • pure function, idempotency, side effect आदि पर विचार
      • side effect पूरी तरह न भी हटाए जा सकें, तो दस्तावेज़ या exceptions के ज़रिए इसकी जानकारी दी जा सकती है
    • रैखिक कोड
      • ऐसा कोड जिसे पढ़ते समय ऊपर से नीचे तक केवल एक बार पढ़ना पड़े
      • रैखिक होने पर मस्तिष्क-विज्ञान के अनुसार working memory के लिए उसे प्रोसेस करना आसान हो जाता है
    • घोषणात्मक कोड
      • ऐसा कोड जो यह स्पष्ट रूप से बताए कि वह क्या करता है
      • उचित नाम देना अच्छा होता है
      • मस्तिष्क-विज्ञान के अनुसार short-term memory के लिए इसे प्रोसेस करना आसान हो जाता है
  • व्यवहारिक रूप से
    • सुंदर कोड ऐसी चीज़ नहीं है जो एक ही बार में तुरंत बन जाए
    • पूरी तरह सुंदर कोड बहुत आम नहीं होता
    • इसलिए क्रमिक सुधार और कोड अलंकरण जैसी अवधारणाएँ ज़रूरी हैं
    • क्रमिक सुधार
      • यानी refactoring करना
      • जाँच और सुधार को दोहराकर 70~80% गुणवत्ता लगातार बनाए रखना
      • जाँच और सुधार कब करना चाहिए?
        • जब code ownership धुंधला होने लगे
          • जब लिखे गए कोड के बारे में ज्ञान धुंधला पड़ने लगे
        • जब बदबू महसूस हो
          • जब कोड देखते समय असहजता महसूस हो
    • कोड अलंकरण
      • कोड को सुंदर दिखाने के लिए उसे सँवारना
      • आम तौर पर test, code review, documentation, comments आदि का उपयोग होता है
      • test
        • यह कोड को अधिक विश्वसनीय बनाता है
        • यह काम करने की गारंटी देता है और test स्वयं दस्तावेज़ भी बन सकता है
      • code review
        • सत्यापन के माध्यम से कोड को अधिक विश्वसनीय बनाता है
        • code ownership के प्रसार में मदद करता है, इसलिए कोड की सामाजिकता भी बढ़ा सकता है
        • बिना सोचे-समझे हर चीज़ का code review bottleneck बन सकता है
      • documentation
        • यह कोड को बेहतर समझने में मदद करता है
        • documentation का समय तब होता है जब किसी दूसरे डेवलपर को उस कोड का संदर्भ, डिज़ाइन और नियम जानना आवश्यक हो
        • UML जैसे टूल्स का उपयोग किया जाए तो और बेहतर है
      • comments
        • जटिल कोड के वे हिस्से जो मजबूरी में बनते हैं, उन्हें दस्तावेज़ से अधिक comments के ज़रिए समझाना बेहतर होता है
  • कोड की गुणवत्ता महत्वपूर्ण है, लेकिन सुंदर कोड सफलता की गारंटी नहीं देता
    • बल्कि डिज़ाइन या कार्य-प्रक्रिया पर अधिक विचार करने की ज़रूरत हो सकती है
    • कोड की गुणवत्ता ज़रूरी नहीं कि उत्पाद की गुणवत्ता की गारंटी दे

9 टिप्पणियां

 
elects 2023-12-19

हाहाहाहा

 
yangeok 2023-12-19

लगता है सामाजिक कोड भी महत्वपूर्ण होगा, हाहा

 
mhj5730 2023-12-18

मुझे लगता है कि यह एक अच्छी तरह व्यवस्थित और बेहतरीन लेख है। अगर टीम के भीतर code quality को लेकर अक्सर समस्याएँ आती हैं, तो इसे पढ़कर साथ बैठकर चर्चा करना भी अच्छा रहेगा।

 
ryuheechul 2023-12-16

विषय थोड़ा जटिल हो सकता है, लेकिन इसे बहुत सहजता से पढ़ा जा सका। धन्यवाद!

 
acsdskim2023 2023-12-15

आख़िरकार, क्रमिक सुधार ही महत्वपूर्ण होता है। किसी भी चीज़ में पहली ही कोशिश में पूरी तृप्ति नहीं मिल सकती।

 
saalome 2023-12-16

खुद के लिखे कोड में सौंदर्यात्मक सुंदरता महसूस करने का शौक बस निजी नज़रिये तक ही रहना चाहिए। पैसे लेकर काम करने वाले प्रोफेशनल अगर कंपनी के कोड को कलात्मक नज़रिये से देखेंगे और जूनियर्स के दिमाग में अजीब सोच भरने वाले सीनियर बनेंगे, तो कृपया ऐसे मत बनिए। नहीं तो डेवलपर की नौकरी छोड़कर पेंटिंग ही कीजिए, ये हर बात में कला-कला क्या है...

 
pastelcolors 2023-12-18

आप "सुंदरता" शब्द पर गलत तरह से अटक गए हैं।

 
aiana 2023-12-18

सिर्फ़ शीर्षक पढ़ने वाला युवा

 
gcback 2023-12-17

हां, यह सच में थोड़ा ज़्यादा ओवर हो गया है