क्या मॉड्यूल को संशोधित / जोड़ते समय किसी अन्य डेवलपर्स कोड को पुन: स्वरूपित करना ठीक है?


13

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

स्पष्ट होने के लिए, मैं किसी भी तर्क को बदलने की बात नहीं कर रहा हूं, बस टैब और स्पेस के साथ खिलवाड़ कर रहा हूं और ऐसे।

संपादित करें: मैं केवल कोडिंग मानकों के लिए ऐसा नहीं करता हूं, यह मुझे उनके कोड के माध्यम से पढ़ने में मदद करता है और इसे अद्यतित करता है ताकि मैं महत्वपूर्ण अनुप्रयोगों को संशोधित करने से पहले लागू किए गए तर्क को पूरी तरह से समझ सकूं।


6
हर किसी के लिए "सेव पर फॉर्मेट" सक्षम करें। कभी-कभी सेटिंग्स पर एक ही सहमत का उपयोग करें। थोड़ी देर के बाद सभी कोड सामान्यीकृत होते हैं।

1
एक ऐसा बिंदु हो सकता है जहां यह बहुत दूर तक जाता है। मेरे पास एक सहकर्मी था जो सब कुछ को सुधारता था, जो कि जहां तक ​​आवश्यक था, तब तक लाइनब्रीक को जोड़ा नहीं गया था। व्यक्तिगत रूप से जब तक यह अपठनीय नहीं है या कोड मेरी प्राथमिक जिम्मेदारी बन गई है, जब तक मैं अन्य परिवर्तन नहीं कर रहा हूं, मैं प्रारूपण को अकेला छोड़ देता हूं।
सोयलेंटग्रे

1
यदि आप c # में कोडिंग कर रहे हैं, तो StyleCop से चिपके रहें। यदि अन्य भाषाओं में है, तो एक अच्छा, निष्पक्ष उपकरण चुनने की कोशिश करें।
जॉब

5
क्या यह "मैं स्वरूपण बदल रहा हूं ... क्योंकि मुझे लगता है कि इसे अलग दिखना चाहिए" .. या क्या यह "मैं स्वरूपण बदल रहा हूं ... मानकों से भी मेल खाता है ..." बेहद अलग-अलग प्रश्न
वर्नरसीडी

1
@ थोरबॉर्न मैं एक शाखा पर विचार नहीं करूंगा जो प्रत्येक फ़ाइल में फ़ॉर्मेटिंग को ठीक करती है, प्रति फ़ाइल 1 फ़ाइल, इतिहास की हत्या। हालांकि, एक ही प्रतिबद्ध के दौरान इसे ठीक करना सिर्फ बुरा है। (मैं वे की तरह कुछ इस्तेमाल कर सकते हैं लगता है कि git addचुनिंदा हिस्सों प्रतिबद्ध करने के लिए है, लेकिन मेरा अनुमान है कि ज्यादातर लोगों को के बराबर का उपयोग करें svn commitया git commit -a)
वैकल्पिक

जवाबों:


19

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


10
यहां पहला वाक्य महत्वपूर्ण है। सुनिश्चित करें कि आप वास्तव में सहमत-मानकों का पालन कर रहे हैं, और न केवल बदलाव कर रहे हैं क्योंकि आप उन्हें पसंद करते हैं।
थॉमस ओवेन्स

5

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

जब आप इस तरह का बदलाव करते हैं तो आपके सुधार के बाद सत्यापन परीक्षण चलाना अच्छा होता है। यदि वे पास हो जाते हैं, तो अपनी सुविधा में बदलाव करने से पहले कोड की जाँच करें।

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


2
+1 के लिए "अपने फीचर में बदलाव करने से पहले कोड की जांच करें"
bdouagan

1
+1 के लिए "अपने फीचर में बदलाव करने से पहले स्वरूपण परिवर्तनों में जांच करें" और "आपके सुधार के बाद सत्यापन परीक्षण चलाने के लिए अच्छा है"। आदर्श रूप से, हमें प्रत्येक चेकइन से पहले सत्यापन परीक्षण चलाना चाहिए।
leed25d

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

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

3

मेरा मानना ​​है कि जब आप किसी विशेष फ़ाइल को संशोधित / जोड़ रहे हैं तो कोड को फिर से सक्रिय करना हमेशा एक अच्छा अभ्यास है। इसमें चर / विधियों और कोडिंग शैलियों के लिए उचित नामकरण सम्मेलनों को प्रतिबिंबित करने के लिए कोड की शैली को अपडेट करना शामिल है।


ओपी ने रिफॉर्मिंग के बारे में पूछा, रिफैक्टिंग नहीं।
मात्रा_देव

मुझे पता है; मैंने कहा कि मुझे लगता है कि इसमें भी सुधार करना शामिल है :)
वेन मोलिना

2

मेरे द्वारा हमेशा ऐसा ही किया जाता है। पुराने कोड को नए कोड के समान मानकों पर रखा जाना चाहिए और यदि आप इसे ठीक नहीं करते हैं जबकि आप इस पर काम कर रहे हैं तो कोई भी नहीं करेगा। मुझे लगता है कि यह बॉय स्काउट नियम के तहत आता है।


2

मुझे लगता है कि यह अच्छा अभ्यास है और कोड रखरखाव का एक आवश्यक हिस्सा है।

मैं संस्करण नियंत्रण प्रणाली के लिए एक प्रतिबद्धता में स्वरूपण परिवर्तनों और एक अलग प्रतिबद्ध में कार्यात्मक परिवर्तन की जाँच करने की सलाह दूंगा जो अपने आप को और दूसरों को समझने में मदद करता है कि क्या हुआ।


1
अलग-अलग आवागमन के लिए +1। यह पता लगाने की कोशिश की जा रही है कि जब कोड में एक ही समय में सुधार किया गया हो तो एक पीटीए क्या है। यदि फ़ाइल की प्रत्येक पंक्ति बदल गई है तो आपके अलग-अलग उपकरण बेकार हैं।
डेव किर्बी

2

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


1

हाँ। कृपया कोड को "ठीक" करें जैसा कि आप फिट देखते हैं। जैसे कि प्रोगैमैटिक प्रोग्रामर्स अपनी किताब द प्रोगैमैटिक प्रोग्रामर में कहते हैं , कोई टूटी हुई खिड़कियां नहीं। यदि कोड बराबर नहीं है, तो मैं इसे एक टूटी हुई खिड़की मानता हूं।


1

विभिन्न रिपॉजिटरी हैं जो स्वचालित रूप से चेक-इन के साथ-साथ सीआर / एलएफ जोड़ी बदलने जैसी छोटी चीजों को प्लेटफॉर्म पर स्रोत के आधार पर प्राप्त करने में सुधार करेंगे।

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

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


1

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

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

मैं एक परियोजना पर काम कर रहा था जब एक बहुत ही विकासकर्ता था। इन वर्षों में, मैंने अपने कोड को प्रारूपित करने का एक बहुत ही व्यवस्थित तरीका विकसित किया है जो मुझे लगता है कि यह पढ़ने में आसान है, निहित गलतियों से कम है, और स्व-दस्तावेजीकरण है। दूसरी ओर, यह लड़का लंबी लाइनों के साथ सभी अंतर्निहित विशेषताओं का उपयोग करने का पक्षधर था, जो 300 वर्णों तक फैला हुआ था, इसलिए आपको इसे पढ़ने के लिए 30 "मॉनिटर करना होगा क्योंकि उनका मानना ​​था कि लाइन की गिनती पठनीयता से अधिक महत्वपूर्ण थी। उन्होंने आधा दिन बिताया। मेरे कोड के माध्यम से उड़ाने ने इसे अपने "पसंदीदा मानक" में बदल दिया ... जबकि मैं अभी भी समानांतर में विकसित कर रहा था! मैं अगली सुबह आया दो दिन के काम के लायक अपनी गंदगी को स्वरूपित करने के लिए। यह असभ्य और समय की बर्बादी थी।

अब अगर डेवलपर चला गया है और आपके पास इसके लिए "बेहतर शैली" है।


0

यदि आपका आईडीई यह कर सकता है तो हमेशा कोड को ऑटोफर्म करें।

  • लंबे समय में अपने संस्करण इतिहास को अव्यवस्थित करने से मैन्युअल स्वरूपण परिवर्तनों को रोकता है
  • सभी डेवलपर्स के बीच औपचारिक प्रोफ़ाइल पर सहमति होनी चाहिए (डिफ़ॉल्ट चुनें -?)
  • किसी फ़ाइल को सहेजते समय फ़ॉर्मेटिंग कोड और आयोजनों को एक आदत बनाना

उदाहरण के लिए ग्रहण में, आप पहले फॉर्मेटर चला सकते हैं और पूरे कोड आधार के लिए आयात व्यवस्थित कर सकते हैं। फिर बचाने से पहले ctrl + alt + f को याद रखें।

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