4 पॉइंट द्वारा GN⁺ 2023-12-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

कोड साफ़-सफ़ाई को अलविदा

  • एक सहकर्मी ने पूरे हफ़्ते लिखा हुआ कोड देर शाम check in किया।
  • graphic editor canvas में shapes का size adjust करने वाला feature implement किया गया।
  • कोड काम कर रहा था, लेकिन दोहराव वाला था।

अगली सुबह...

  • मैनेजर ने निजी बातचीत के लिए बुलाया और code changes को revert करने के लिए कहा।
  • शुरुआत में झटका लगा, लेकिन अंततः समझ आया कि मैनेजर का फ़ैसला सही था।

चरण

  • "clean code" को लेकर जुनूनी होना और duplication हटाने में डूब जाना कई developers के जीवन का एक चरण होता है।
  • जब अपने code पर भरोसा कम हो, तब अपनी self-esteem और professional pride को उन चीज़ों से जोड़ देना आसान लगता है जिन्हें मापा जा सकता है।
  • abstraction सीख लेने के बाद, हर बार दोहराया हुआ code दिखे तो abstraction इस्तेमाल करने का मन होता है।

GN⁺ की राय

  • महत्वपूर्ण बात यह है कि code की "cleanliness" का पीछा करना असली लक्ष्य नहीं है, बल्कि complex systems से निपटने की प्रक्रिया में यह एक तरह का defense mechanism है।
  • "clean code" developers को अनजान क्षेत्र में रास्ता खोजने में मदद करता है, लेकिन केवल उसी से चिपके रहने के बजाय ज़रूरत पड़ने पर उसे छोड़ना भी आना चाहिए।
  • यह लेख developers को code लिखने और maintain करने की प्रक्रिया में collaboration और practicality के महत्व की याद दिलाने वाला एक दिलचस्प नज़रिया देता है।

1 टिप्पणियां

 
GN⁺ 2023-12-09
Hacker News की राय
  • "Clean Code" को ब्रांड रीफ्रेश की ज़रूरत है

    • Clean Code का उद्देश्य कोड को अधिक सरल और maintain करना आसान बनाना है
    • सॉफ़्टवेयर का मूल्य समय के साथ बदलने की उसकी क्षमता में है
    • अगर refactoring ने maintenance को और कठिन बना दिया, तो वह Clean Code नहीं है
    • मूल developer से refactoring पर चर्चा न करना, Clean Code से अलग मुद्दा है
  • code duplication कभी-कभी ठीक हो सकता है, लेकिन यह Clean Code के बुरा होने का प्रमाण नहीं है

    • अगर 10 पंक्तियों की दोहराई जाने वाली गणितीय गणना को function से बदल दिया जाए, तो कोड अधिक clean हो सकता है
    • PR की review होनी चाहिए और मानकों पर खरा न उतरने पर उसे reject करना चाहिए
    • Clean Code के महत्व को नज़रअंदाज़ करने का रवैया आखिरकार ऐसे codebase तक ले जाता है जिस पर कोई काम नहीं करना चाहता
    • इससे बेहतर communication और संयम की ज़रूरत का सबक मिलता है
  • एक सहकर्मी copy-paste से बहुत सारा code लिखता है

    • refactoring को review के लिए भेजा जाना चाहिए
    • manager का सीधे दखल देकर उसे वापस करने का निर्देश देना खराब संकेत है
    • इससे यह सबक नहीं मिलता कि copy-paste, function लिखने से बेहतर है
  • संभव है कि Clean Code वाला version, गंदे code की जगह लाया गया हो

    • टीम में काम करने के तरीके पर सबक की ज़रूरत है
  • code बदलते समय peer review ज़रूरी है

    • यह मानना चाहिए कि अच्छे process की कमी है
    • code refactoring केवल ज़रूरत होने पर ही करनी चाहिए
  • वित्तीय क्षेत्र में अक्सर ऐसे products होते हैं जो समान होते हुए भी अलग होते हैं

    • अत्यधिक abstraction से बचते हुए Clean Code बनाए रखना महत्वपूर्ण है
  • Haskell जैसी भाषाएँ language level पर abstraction को अधिकतम करती हैं

    • project-specific abstraction को न्यूनतम रखते हुए भी उनकी learning cost अधिक होती है
  • दोहराई जाने वाली गणितीय गणना को अलग function में ले जाना Clean Code के अंतर्गत आता है

    • interface बनाने जैसा दिखने वाले resize functions का refactoring करना गलत है
  • खराब abstraction की व्याख्या

    • भविष्य में उपयोग को पर्याप्त रूप से सोचे बिना design करना ही समस्या है
  • Rob Pike ने कहा, "थोड़ी copy, थोड़ी dependency से बेहतर है"

    • DRY सिद्धांत कभी-कभी abstraction जोड़ता है, लेकिन अगर abstraction पर्याप्त रूप से orthogonal न हो, तो वह उल्टा समस्या को और बढ़ा देता है