यदि कोई सहकर्मी आपके कोड को संपादित कर रहा है, तो आपको क्या करना चाहिए?
कार्यक्षमता जोड़ने या बग को ठीक करने के उद्देश्य के बिना, बस यह देखने के लिए कि यह कैसा दिखता है ...
यदि कोई सहकर्मी आपके कोड को संपादित कर रहा है, तो आपको क्या करना चाहिए?
कार्यक्षमता जोड़ने या बग को ठीक करने के उद्देश्य के बिना, बस यह देखने के लिए कि यह कैसा दिखता है ...
जवाबों:
इसके बारे में उनसे बात करें। "वे मुझे परेशान करने के लिए ऐसा नहीं कर रहे हैं या क्योंकि वे जुनूनी-बाध्यकारी विकार का कोई रूप है, वे मेरे कोड को बेहतर बनाने की कोशिश कर रहे हैं।"
क्योंकि आप गलत हो सकते हैं। यह एक सूक्ष्म बग फिक्स हो सकता है और आपने अभी इसे स्पॉट नहीं किया है।
या, यह हो सकता है कि एक कोडिंग मानक हो, जिसके बारे में आप नहीं जानते कि आप उल्लंघन कर रहे हैं, और वे इसे ठीक कर रहे हैं।
या, यह हो सकता है कि वे आपको परेशान करने की कोशिश कर रहे हों, या उनके पास जुनूनी-बाध्यकारी विकार का कोई रूप हो। अगर ऐसा है, तो उन्हें रोकने के लिए अच्छी तरह से पूछें, और अगर वह काम नहीं करता है, तो इसे अपने बॉस के साथ ले जाएं।
लेकिन आप कभी नहीं जान पाएंगे जब तक आप नहीं पूछेंगे।
मैं इससे परेशान नहीं हूं कि मेरा कोड मुझे परेशान करने के लिए कैसे दिखता है। :) मैं परिवर्तनों से सीखने की कोशिश करता हूं। क्या मेरे सहकर्मी ने चर नामों को समायोजित किया है? अधिक कुशल लूप लिखें? कोड को अधिक पठनीय बनाओ?
यदि मैं यह नहीं देख सकता कि परिवर्तनों में क्या सुधार हुआ है तो पहले से ही था, मैं आमतौर पर सहकर्मी से पूछता हूं कि उन परिवर्तनों को किसने किया था जो उनके पीछे प्रेरणा थी। यह संभव है कि लाभ मेरे लिए स्पष्ट नहीं है। और अगर मैं सही हूं और वे गलत हैं, तो शायद मैं समझा सकता हूं कि मैंने इसे वैसे ही लिखा जैसे मैंने किया था।
यदि अन्य सभी विफल रहता है, तो चेक-इन वापस कर दें। ;)
संपादित करें: यदि कॉस्मेटिक बदलाव करने की इच्छा एक बग की शुरुआत की है, तो सभी दांव बंद हैं।
IMO आप और आपकी टीम वैसे भी एक कोडिंग मानक का उपयोग करना चाहिए। यदि यह मामला है, तो सवाल बन जाता है 'क्या आपका मूल कोड मानक के अनुरूप था?' यदि If हां ’है तो आपके सहकर्मी को आपके कोड को तब तक नहीं छूना चाहिए जब तक कि वह इसे कार्यात्मक रूप से न बदल दे। यदि 'नहीं' तो मुझे डर है कि आपके सहकर्मी को आपके कोड को साफ करने का पूरा अधिकार है। एक परियोजना के नेतृत्व के रूप में मैं खुद को हर समय ऐसा करते हुए पाता हूं।
यदि आप एक कोडिंग मानक का उपयोग नहीं कर रहे हैं, तो 'अच्छे कोड' का गठन करने का पूरा तर्क भी व्यक्तिपरक हो जाता है। इसलिए आपको कोडिंग मानक का उपयोग क्यों करना चाहिए :)
उन लोगों में से एक (वे लोग जो कभी-कभार अन्य लोगों के कोड को सुधारते हैं), मुख्य कारण जो मैं इसे करता हूं वह पठनीयता है। कुछ लोग अपने इंडेंटेशन के साथ या टैब्स और स्पेस को मिलाने में बहुत ही फूहड़ होते हैं।
मुख्य बात जो मुझे बदलने की आदत है, वह लंबी लाइनों को कम कर रही है ताकि मैं क्षैतिज स्क्रॉल के बिना पूरी बात पढ़ सकूं। यदि मैं एक लाइन पर सभी आराम से फिट नहीं होता है, तो मैं जटिल बयानों को अलग-अलग बयानों या रिफॉर्मैट मेथड कॉल / घोषणाओं को एक पंक्ति में तोड़ दूँगा। मैं टिप्पणी भी संपादित करूंगा, या तो अंग्रेजी त्रुटियों को ठीक करने के लिए या केवल चीजों को स्पष्ट करने के लिए।
हां, मैं इसे अकेला छोड़ सकता था, लेकिन मैं कोड पढ़ने के लिए आवश्यक मानसिक प्रयास को कम करूंगा।
आपको इसके बारे में क्या करना चाहिए? सबसे पहले, विचार करें कि शायद यह व्यक्ति आपके कोड को बेहतर बना रहा है। इसके अलावा, आपको यह सुनिश्चित करना चाहिए कि आपकी टीम में कुछ सहमति है कि कैसे कोड स्वरूपित किया जाना चाहिए। यदि प्रत्येक व्यक्ति की अलग-अलग आदतें हैं तो यह हर किसी को धीमा कर देगा। यदि वे आपके कोड को बेहतर नहीं बना रहे हैं और वे अनाज के खिलाफ जा रहे हैं, तो आपको उन्हें इसके बारे में सामना करने की आवश्यकता है। अगर वह काम नहीं करता है, तो आपको दूसरों को शामिल करने की आवश्यकता हो सकती है।
उनसे पूछें कि वे ऐसा क्यों कर रहे हैं; एक वैध स्पष्टीकरण आपकी निराशा को कम कर सकता है, लेकिन आपको उन्हें यह बताना चाहिए कि यह आपको कितना परेशान करता है। कौन जानता है, शायद उन्होंने सोचा था कि वे आपको एक एहसान कर रहे थे और जब वे सीखेंगे तो वे आपको रोक देंगे। या आप किसी ऐसे व्यक्ति के साथ व्यवहार कर सकते हैं जो चिकित्सकीय स्थिति से पीड़ित है।
क्या उसे अनुमति दी गई है? क्या परिवर्तन कोड में सुधार करते हैं? यदि हां, तो अपने अभिमान को निगल लें। यदि आपको लगता है कि कोड की गुणवत्ता खराब हो गई है, तो इसे सहकर्मी के पास ले जाएं और उनसे पूछें कि उन्हें आपके कोड को बिना किसी स्पष्ट लाभ के बदलने की आवश्यकता क्यों महसूस हुई। यदि यह बावजूद किया जा रहा है या क्योंकि व्यक्ति गलती से लगता है कि वे आपसे बेहतर हैं, और आप इसे उनके साथ काम नहीं कर सकते, तो इसे अपने बॉस के साथ ले जाएं।
आईडीई के विजुअल स्टूडियो के पास एक विकल्प होता है जिसे Format Document
उपयोगकर्ता आईडीई में निर्धारित नियमों के अनुसार कोड स्वरूपित करेगा। यह हो सकता है कि आपका सहकर्मी इसका उपयोग कर रहा हो (या तो बिना जाने, या जानबूझकर किया गया आवेदन)। शायद उनके आईडीई टैब के बजाय रिक्त स्थान का उपयोग करते हैं, या इसके विपरीत, और ये बिना जाने भी स्वचालित रूप से लागू हो रहे हैं? लेकिन आपको यह पता लगाने के लिए उनके साथ बात करने की आवश्यकता है।
संयोग से, मैं अक्सर सहकर्मियों के कोड को फिर से प्रारूपित करूंगा यदि यह स्पष्ट रूप से किसी प्रकार की प्रारूपण योजना का पालन नहीं कर रहा है (अर्थात यह सभी जगह है)। यह उन्हें नोटिस करने का एक सूक्ष्म तरीका है। (हालांकि, अगर यह साफ-सुथरा था, लेकिन मैं अपनी पसंद के हिसाब से इसे रिफॉर्म नहीं करूंगा)।
यदि वह इसे बदल रहा है ताकि यह आपकी टीम के कोडिंग मानकों को पूरा करे, तो आपको अगली बार मानकों का पालन करना चाहिए।
यदि वह इसे ऐसे बदलता है कि यह आपकी टीम के कोडिंग मानकों का पालन नहीं करता है, तो उसे सूचित करें कि वह क्या गलत कर रहा है और उसे वापस बदल दें।
... आपकी टीम में कोड स्वरूपण मानकों का एक सेट है जो सभी के द्वारा उपयोग किया जाता है, है ना?
मैं कभी-कभी गन्दे सहकर्मियों द्वारा लिखे गए कोड को पुन: लिखता हूं (या टिप्पणियों में टाइपो को ठीक करता हूं)। वे जानते हैं कि मैं कोड स्वरूपण और क्रम में जुनूनी हूं और इसलिए उन्होंने मुझे बहुत शिकायत किए बिना ऐसा करने दिया। कभी-कभी वे मुझे एक मुफ्त सोडा या कुकी भी देते हैं।
बेशक यह सामयिक काम है, क्योंकि इसने SVN में "दोष" कार्यक्षमता को तोड़ दिया है।
यह किसी प्रकार की कोड समीक्षा करने का एक बहुत ही मूल तरीका है (मैं आमतौर पर अपने काम करने वाले मॉड्यूल में अपने सहकर्मियों द्वारा किए गए अधिकांश कोड पढ़ता हूं)।
कोड सम्मेलनों है जवाब। आपके पास काम पर एक होना चाहिए। यदि आप नहीं करते हैं, तो अभी शुरू करें (एक अच्छा प्रारंभिक बिंदु Google शैली गाइड है )। जब लिखित (या कम से कम सामान्यतः ज्ञात) नियम होते हैं तो आपके प्रश्न का उत्तर तुच्छ होता है।
मुझे लगता है कि आप सोच रहे हैं कि ऐसा करना आक्रामक है ...? उदाहरण के लिए, मैं स्वयं इस कोड को तुरंत ठीक कर दूंगा
int myFunction( ) {
int i ;
return 0;
}
बनने के लिए
int myFunction() {
int i;
return 0;
}
इसलिए ... क्या मुझे मेरी कार्रवाई के कारण दंडित किया जाना चाहिए? वास्तविक जीवन में, मेरे पास वास्तव में 'फ़ॉर्मेटिंग' पढ़े जाने वाले SVN लॉग्स हैं। ;-)
स्टाइलकॉप या समान का उपयोग करना शुरू करें और कोड शैली नियमों को लागू करें और सभी डेवलपर्स के लिए इसका उपयोग करने के लिए एक दायित्व भी बनाते हैं। सभी कोड अपवाद के बिना समान दिखाई देंगे। और अपने संगठन के लिए सबसे उपयुक्त नियमों पर चर्चा करने के लिए बुद्धिमान लोगों के साथ मिलें । भले ही डिफ़ॉल्ट नियम बहुत पहले से ही .net फ्रेमवर्क कोड के समान हैं।
यह इसे करने का सबसे आसान तरीका है। मैंने खुद को अपने पिछले नियोक्ताओं में से किसी एक के कोड को सही करने के लिए पाया क्योंकि यह अन्य व्यक्ति अत्यधिक मात्रा में खाली लाइनों के साथ कोड लिख रहा था और जो भी कोई इंडेंटेशन नियम नहीं था। कोड वास्तव में एक औसत डेवलपर द्वारा अपठनीय था। अगर स्टाइलकॉप वापस मौजूद होता तो यह हममें से कई को वास्तव में खुश कर देता।
यह एक ऐसा विचार है जो मैंने इंटरनेट पर देखा था कि रिफैक्टिंग के बारे में बात कर रहा हूं और शायद समझाऊंगा कि कोई इसे बेहतर बनाने के लिए आपके कोड को क्यों छूएगा :
क्यों?
रिफ्लेक्टर के दो मुख्य कारण हैं:
शीर्ष पर बनने से पहले कोड / डिज़ाइन में सुधार करना: पहले प्रयास में अच्छे कोड के साथ आना वास्तव में कठिन है। किसी भी प्रारंभिक डिजाइन को लागू करने का पहला प्रयास हमें दिखाएगा कि हमने गलत तर्क दिया या कुछ तर्क भूल गए।
आवश्यकताओं में परिवर्तन के अनुकूल होना। सॉफ्टवेयर विकास में परिवर्तन होता है; परिवर्तन के लिए उत्तरदायी होना एक अच्छा कोड आधार होना बेहतर है। हमारे पास दोनों परिदृश्यों के लिए दो विकल्प हैं, कोड को पथ दें या इसे रिफलेक्टर करें। कोड को पैच करना हमें अचूक कोड की ओर ले जाएगा, और हमारे तकनीकी ऋण को बढ़ाएगा, यह हमेशा रिफ्लेक्टर के लिए बेहतर होता है।
कब?
जितनी जल्दी हो उतना आसान है।
कोड को लगभग पूरा करने के लिए रिफ्लेक्टर की प्रतीक्षा करने के बजाय हाल ही में रिफलेक्ट किए गए कोड पर रिफ्लेक्टर करने के लिए तेज़ और कम जोखिम भरा।
क्या?
सभी कोड और सभी डिजाइन रिफैक्टरिंग के लिए उम्मीदवार हैं।
किसी चीज को रिफ्लेक्ट न करने का एक अपवाद काम का एक कोड कोड हो सकता है जो कि गुणवत्ता कम हो, लेकिन एक समय सीमा के करीब होने के कारण, हम योजना को जोखिम में डालने के बजाय अपने तकनीकी ऋण को रखना पसंद करते हैं।
आपको बस उसे अपना सर्वश्रेष्ठ प्रदर्शन करने देना होगा, अगर यह दोनों के लिए बहुत अच्छा होगा और भविष्य में आपका समय बचाएगा!
चियर्स