अगर कोई सहकर्मी सिर्फ उपस्थिति बदलने के लिए आपके कोड को संपादित कर रहा है तो क्या करें?


16

यदि कोई सहकर्मी आपके कोड को संपादित कर रहा है, तो आपको क्या करना चाहिए?

कार्यक्षमता जोड़ने या बग को ठीक करने के उद्देश्य के बिना, बस यह देखने के लिए कि यह कैसा दिखता है ...


9
मुझे लगता है कि आपको इससे समस्या है। यदि हां, तो क्यों? क्या यह कोड को बदतर बनाता है ?
ज़ाज़

3
@ जोश: हाँ वास्तव में यह कोड को बदतर बनाता है, क्योंकि इसे लिखने वाले की तुलना में कुछ अन्य प्रोग्रामर द्वारा बनाए रखना कठिन है।
राबर्ट कोरिटनिक

4
उसे और अधिक काम करने के लिए दे दो
ऑस्कर कैब्रेरो

4
@ रॉबर्ट - मुझे लगता है कि आपको @ जोश की बात याद आती है। कोड की उपस्थिति बदलने से इसे बनाए रखने के लिए उद्देश्यपूर्ण रूप से आसान हो सकता है ... खासकर अगर इसे शुरू करने के लिए खराब स्वरूपित किया गया था।
स्टीफन सी।

4
क्या यह वास्तव में आपका कोड है, या यह टीम का है?
एरिक किंग

जवाबों:


28

इसके बारे में उनसे बात करें। "वे मुझे परेशान करने के लिए ऐसा नहीं कर रहे हैं या क्योंकि वे जुनूनी-बाध्यकारी विकार का कोई रूप है, वे मेरे कोड को बेहतर बनाने की कोशिश कर रहे हैं।"

क्योंकि आप गलत हो सकते हैं। यह एक सूक्ष्म बग फिक्स हो सकता है और आपने अभी इसे स्पॉट नहीं किया है।

या, यह हो सकता है कि एक कोडिंग मानक हो, जिसके बारे में आप नहीं जानते कि आप उल्लंघन कर रहे हैं, और वे इसे ठीक कर रहे हैं।

या, यह हो सकता है कि वे आपको परेशान करने की कोशिश कर रहे हों, या उनके पास जुनूनी-बाध्यकारी विकार का कोई रूप हो। अगर ऐसा है, तो उन्हें रोकने के लिए अच्छी तरह से पूछें, और अगर वह काम नहीं करता है, तो इसे अपने बॉस के साथ ले जाएं।

लेकिन आप कभी नहीं जान पाएंगे जब तक आप नहीं पूछेंगे।


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

@Matt: उत्कृष्ट बिंदु।
ब्लेयरहिपो

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

5
ओह, मैं टॉम के सहकर्मी ISN'T को OCD नीच-सनकी नहीं कह रहा हूं जिसकी सीमाएँ खराब हैं। मैं सिर्फ यह कह रहा हूं कि "व्हाट द हेल विद यू?" उत्पादक बातचीत करने का अच्छा तरीका नहीं है। :-)
ब्लेयरहिपो

1
@ क्रिस को औचित्य के बारे में चिंता करने की कोई जरूरत नहीं है, मैं हमेशा Ctrl + K + D!
नाथन टेलर

16

मैं इससे परेशान नहीं हूं कि मेरा कोड मुझे परेशान करने के लिए कैसे दिखता है। :) मैं परिवर्तनों से सीखने की कोशिश करता हूं। क्या मेरे सहकर्मी ने चर नामों को समायोजित किया है? अधिक कुशल लूप लिखें? कोड को अधिक पठनीय बनाओ?

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

यदि अन्य सभी विफल रहता है, तो चेक-इन वापस कर दें। ;)

संपादित करें: यदि कॉस्मेटिक बदलाव करने की इच्छा एक बग की शुरुआत की है, तो सभी दांव बंद हैं।


9

IMO आप और आपकी टीम वैसे भी एक कोडिंग मानक का उपयोग करना चाहिए। यदि यह मामला है, तो सवाल बन जाता है 'क्या आपका मूल कोड मानक के अनुरूप था?' यदि If हां ’है तो आपके सहकर्मी को आपके कोड को तब तक नहीं छूना चाहिए जब तक कि वह इसे कार्यात्मक रूप से न बदल दे। यदि 'नहीं' तो मुझे डर है कि आपके सहकर्मी को आपके कोड को साफ करने का पूरा अधिकार है। एक परियोजना के नेतृत्व के रूप में मैं खुद को हर समय ऐसा करते हुए पाता हूं।

यदि आप एक कोडिंग मानक का उपयोग नहीं कर रहे हैं, तो 'अच्छे कोड' का गठन करने का पूरा तर्क भी व्यक्तिपरक हो जाता है। इसलिए आपको कोडिंग मानक का उपयोग क्यों करना चाहिए :)


8

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

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

हां, मैं इसे अकेला छोड़ सकता था, लेकिन मैं कोड पढ़ने के लिए आवश्यक मानसिक प्रयास को कम करूंगा।

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


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

6

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


"या उनके पास ओसीडी है और उन्हें दवा की आवश्यकता हो सकती है।" - सबसे अच्छा है कि अगर आप अनुकूल रहना चाहते हैं तो उस हिस्से का उल्लेख न करें
Zaz

मैं एक संशोधन कर दूँगा।
जेएफओ

5

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


5

आईडीई के विजुअल स्टूडियो के पास एक विकल्प होता है जिसे Format Documentउपयोगकर्ता आईडीई में निर्धारित नियमों के अनुसार कोड स्वरूपित करेगा। यह हो सकता है कि आपका सहकर्मी इसका उपयोग कर रहा हो (या तो बिना जाने, या जानबूझकर किया गया आवेदन)। शायद उनके आईडीई टैब के बजाय रिक्त स्थान का उपयोग करते हैं, या इसके विपरीत, और ये बिना जाने भी स्वचालित रूप से लागू हो रहे हैं? लेकिन आपको यह पता लगाने के लिए उनके साथ बात करने की आवश्यकता है।

संयोग से, मैं अक्सर सहकर्मियों के कोड को फिर से प्रारूपित करूंगा यदि यह स्पष्ट रूप से किसी प्रकार की प्रारूपण योजना का पालन नहीं कर रहा है (अर्थात यह सभी जगह है)। यह उन्हें नोटिस करने का एक सूक्ष्म तरीका है। (हालांकि, अगर यह साफ-सुथरा था, लेकिन मैं अपनी पसंद के हिसाब से इसे रिफॉर्म नहीं करूंगा)।


1
"(हालांकि, अगर यह साफ-सुथरा था, लेकिन मेरी पसंद के हिसाब से नहीं) तो मैं इसका सुधार नहीं करूंगा" - पालन करने के लिए बहुत महत्वपूर्ण नियम, +1
Zaz

हमारे विकास दिशानिर्देश 'अनुशंसित' कोने में कोड शैली को अधिक रखने की प्रवृत्ति रखते हैं। अगर मुझे पढ़ने में मुश्किल होती है, तो मैं फ़ाइल स्तर पर सिफारिशों के लिए ऑटो-प्रारूप कोड देता हूं।
जोएरी सेब्रचेट्स

3

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

यदि वह इसे ऐसे बदलता है कि यह आपकी टीम के कोडिंग मानकों का पालन नहीं करता है, तो उसे सूचित करें कि वह क्या गलत कर रहा है और उसे वापस बदल दें।

... आपकी टीम में कोड स्वरूपण मानकों का एक सेट है जो सभी के द्वारा उपयोग किया जाता है, है ना?


2

मैं कभी-कभी गन्दे सहकर्मियों द्वारा लिखे गए कोड को पुन: लिखता हूं (या टिप्पणियों में टाइपो को ठीक करता हूं)। वे जानते हैं कि मैं कोड स्वरूपण और क्रम में जुनूनी हूं और इसलिए उन्होंने मुझे बहुत शिकायत किए बिना ऐसा करने दिया। कभी-कभी वे मुझे एक मुफ्त सोडा या कुकी भी देते हैं।

बेशक यह सामयिक काम है, क्योंकि इसने SVN में "दोष" कार्यक्षमता को तोड़ दिया है।

यह किसी प्रकार की कोड समीक्षा करने का एक बहुत ही मूल तरीका है (मैं आमतौर पर अपने काम करने वाले मॉड्यूल में अपने सहकर्मियों द्वारा किए गए अधिकांश कोड पढ़ता हूं)।


2

कोड सम्मेलनों है जवाब। आपके पास काम पर एक होना चाहिए। यदि आप नहीं करते हैं, तो अभी शुरू करें (एक अच्छा प्रारंभिक बिंदु Google शैली गाइड है )। जब लिखित (या कम से कम सामान्यतः ज्ञात) नियम होते हैं तो आपके प्रश्न का उत्तर तुच्छ होता है।


1

मुझे लगता है कि आप सोच रहे हैं कि ऐसा करना आक्रामक है ...? उदाहरण के लिए, मैं स्वयं इस कोड को तुरंत ठीक कर दूंगा

int myFunction( ) {

    int i ;
  return  0;

}

बनने के लिए

int myFunction() {
    int i;
    return 0;
}

इसलिए ... क्या मुझे मेरी कार्रवाई के कारण दंडित किया जाना चाहिए? वास्तविक जीवन में, मेरे पास वास्तव में 'फ़ॉर्मेटिंग' पढ़े जाने वाले SVN लॉग्स हैं। ;-)


0

एक शैली जाँच उपकरण का उपयोग करें

स्टाइलकॉप या समान का उपयोग करना शुरू करें और कोड शैली नियमों को लागू करें और सभी डेवलपर्स के लिए इसका उपयोग करने के लिए एक दायित्व भी बनाते हैं। सभी कोड अपवाद के बिना समान दिखाई देंगे। और अपने संगठन के लिए सबसे उपयुक्त नियमों पर चर्चा करने के लिए बुद्धिमान लोगों के साथ मिलें । भले ही डिफ़ॉल्ट नियम बहुत पहले से ही .net फ्रेमवर्क कोड के समान हैं।

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


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

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

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

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

इन दिनों हमारे पास ग्रंट, गल्प आदि हैं जो इस कदम को ठीक उसी तरह कर सकते हैं जैसे स्टाइलकॉप ने अतीत में किया था।
रॉबर्ट कोरिटनिक

0

यह एक ऐसा विचार है जो मैंने इंटरनेट पर देखा था कि रिफैक्टिंग के बारे में बात कर रहा हूं और शायद समझाऊंगा कि कोई इसे बेहतर बनाने के लिए आपके कोड को क्यों छूएगा :

क्यों?

रिफ्लेक्टर के दो मुख्य कारण हैं:

  1. शीर्ष पर बनने से पहले कोड / डिज़ाइन में सुधार करना: पहले प्रयास में अच्छे कोड के साथ आना वास्तव में कठिन है। किसी भी प्रारंभिक डिजाइन को लागू करने का पहला प्रयास हमें दिखाएगा कि हमने गलत तर्क दिया या कुछ तर्क भूल गए।

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

कब?

  1. जितनी जल्दी हो उतना आसान है।

  2. कोड को लगभग पूरा करने के लिए रिफ्लेक्टर की प्रतीक्षा करने के बजाय हाल ही में रिफलेक्ट किए गए कोड पर रिफ्लेक्टर करने के लिए तेज़ और कम जोखिम भरा।

क्या?

  1. सभी कोड और सभी डिजाइन रिफैक्टरिंग के लिए उम्मीदवार हैं।

  2. किसी चीज को रिफ्लेक्ट न करने का एक अपवाद काम का एक कोड कोड हो सकता है जो कि गुणवत्ता कम हो, लेकिन एक समय सीमा के करीब होने के कारण, हम योजना को जोखिम में डालने के बजाय अपने तकनीकी ऋण को रखना पसंद करते हैं।

आपको बस उसे अपना सर्वश्रेष्ठ प्रदर्शन करने देना होगा, अगर यह दोनों के लिए बहुत अच्छा होगा और भविष्य में आपका समय बचाएगा!

चियर्स

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