अगर मुझे 80% से अधिक परिवर्तन करना है तो क्या मुझे क्लास फाइल में लेखक का नाम बदलना चाहिए?


18

मैं स्वचालित UI परीक्षणों के लिए जावा परीक्षण कक्षाओं के मौजूदा सेट को फिर से तैयार कर रहा हूं। कई बार मैं क्लास फाइल में बड़े पैमाने पर बदलाव करता हूं या पूरी तरह से इसे सुधारता हूं। इससे मुझे लगता है कि जब मैं पूरी कक्षा को फिर से लिख रहा हूं तो क्या मुझे लेखक का नाम टिप्पणी अनुभाग में बदल देना चाहिए?

क्या मैं लालची हो रहा हूं? या क्या यह मेरे नाम को देखने और संदेह के मामले में मुझसे पूछने के लिए उपयोगी है?


17
क्या आप संस्करण नियंत्रण का उपयोग कर रहे हैं? मैं लॉग प्रतिबद्ध ग्रन्थकारिता के लिए एक और अधिक विश्वसनीय ट्रैकिंग प्रणाली होने के लिए लगता है (कभी अगर पता लगाने के लिए एक वैध आवश्यकता ...)
rwong

5
यदि कोड में किसी भी प्रकार का मान है तो नाम वहां होना चाहिए। यानी संपर्क व्यक्ति। जिम्मेदारी वगैरह। और अगर ऐसा मामला है, तो इसे अंतिम तिथि और नए नाम के साथ संलग्न करें।
इंडिपेंडेंट

15
क्लास की फाइलों में ऑटोर का नाम होने का क्या उद्देश्य है?
B22овиЈ

2
यदि फ़ाइल में लेखक के नाम के लिए एक प्लेसहोल्डर है, तो संभावना है कि इसमें परिवर्तन लॉग के लिए एक प्लेसहोल्डर भी है। मैं मूल लेखक के बजाय परिवर्तन लॉग में अपना नाम रखूंगा। वैसे भी, मैं अपने खुद के उंगलियों के निशान को कभी भी नहीं छोड़ता हूं जो मैं लिखता हूं, केवल मेरे बॉस के।
मौविसील

1
लेखक के रूप में उनका नाम छोड़ने और नीचे एक पंक्ति जोड़ने के बारे में क्या गलत है, जो कहता है "नाम फिर से लिखा / फिर से लिखा गया है"
रायथल

जवाबों:


15

यह वास्तव में निर्भर करता है ...

अगर आपको लगता है कि इस बात की थोड़ी सी भी संभावना है कि मूल लेखक से पूछने में बाद में किसी और की दिलचस्पी हो सकती है, तो कोड में उसका नाम दें। यदि आपको लगता है कि कोई व्यक्ति आपको व्यक्तिगत रूप से पूछने में दिलचस्पी ले सकता है, तो उसमें अपना नाम दें। और अगर आपको लगता है, दोनों संभव हो सकते हैं, तो दोनों नामों को (या "की तरह काम के आधार पर एक टिप्पणी") दें।

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

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


13

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

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

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

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

इसलिए फ़ाइल हेडर पर मेरे विचार के प्रकाश में, मैं कहूंगा कि यदि आपने फ़ाइल का 80% बदल दिया है और आपको लगता है कि अब आप किसी भी प्रश्न के लिए गो-टू-मैन हैं (और आपको शायद ऐसा ही महसूस करना चाहिए), हाँ, जाओ उस पर अपना नाम रखने के लिए फ़ाइल हेडर को आगे और अपडेट करें। यदि आप पिछले व्यक्ति को हटाने के बारे में बुरा महसूस करते हैं, तो आप कम से कम समय के लिए उनका नाम भी छोड़ सकते हैं। आप हमेशा मूल लेखक से पूछ सकते हैं और मुझे यकीन है कि वे एक सा भी बुरा नहीं मानेंगे कि आपने नाम बदल दिया है, क्योंकि मैं मान रहा हूं कि आपके बारे में 80% फ़ाइल को बदलने के बारे में कोई कठिन भावना नहीं है।

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


1
मैं आपकी बातों को देखता हूं लेकिन "ओपी" कौन है?
तरुण

एक प्रोजेक्ट पेज या एक आंतरिक विकी हो सकता है, जहां संपर्क जानकारी सभी को देखने के लिए रखी जा सकती है। स्रोत नियंत्रण में उन सूचनाओं (प्रलेखन और संपर्क व्यक्तियों) को डालने में कठिनाई होती है ... ब्रांचिंग और विलय के दौरान।
rwong

@ तरुण: ओपी = "मूल पोस्टर" (यानी सवाल पूछने वाला व्यक्ति)। यह ऑनलाइन चर्चा मंचों में उपयोग की जाने वाली अभिव्यक्ति है।
साल्के

@ तरुण से सहमत, पोस्ट का एक लिंक आपके उत्तर को परिप्रेक्ष्य में रखने में मदद करेगा। मैं यह एक अनुमान लगा रहा हूँ ?
यानिस डे

1
@ क्रॉन्ग: ब्रांचिंग और मर्जिंग के दौरान समस्या क्यों है? आम तौर पर जो व्यक्ति एक बदलाव का विलय करता है, उसे इसे समझना चाहिए (अन्यथा, वे इसे विलय क्यों कर रहे हैं?)। तो लॉग में व्यक्ति पूछने के लिए एक है।
साल्स्के

5

मुझे लेखक का नाम बहुत उपयोगी नहीं लगा। जैसा कि यह सवाल दिखाता है, अक्सर एक भी लेखक नहीं होता है, इसलिए "लेखक" का नामकरण संभव नहीं है।

आप निश्चित रूप से उन सभी लोगों की सूची शामिल कर सकते हैं जिन्होंने प्रमुख योगदान दिया है, लेकिन आप पहले से ही संशोधन नियंत्रण लॉग से प्राप्त कर सकते हैं - तो क्या बात है?

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

संपादित करें

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


so what's the point?ऐसी परियोजनाएँ जो किसी vcs के अंतर्गत नहीं हैं, ऐसी परियोजनाएँ जो किसी बिंदु पर एक अलग vcs पर माइग्रेट हो गईं (सभी माइग्रेशन योजनाएँ इतिहास के प्रवास की अनुमति नहीं देतीं, दुर्भाग्य से), और एक ही समय में एक से अधिक vcs का उपयोग करने वाली परियोजनाएँ - कुछ FLOSS प्रोजेक्ट्स अपनाते हैं लोगों के लिए योगदान देना आसान बनाने के लिए, उन्हें एक vcs तक सीमित किए बिना (svn लोग git कठिन पाते हैं, git लोग svn को अनुपयोगी पाते हैं, और हम hg लोग दोनों को
हँसाते हैं

1
@YannisRizos: ठीक है, यह सच है। मैंने अनुमान लगाया कि कोई भी सॉफ्टवेयर परियोजना संस्करण नियंत्रण का उपयोग करेगी। मेरे उत्तर का संपादन किया।
साल्स्के

और निश्चित रूप से मेरे अन्य बिंदुओं को आसानी से कुछ मामूली vcs- फू के साथ हल किया जाना चाहिए, इसमें शामिल vcs की परवाह किए बिना। लेकिन व्यवहार में वे शायद ही कभी, दुर्भाग्य से।
यानिस डे

2

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


1

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

लेखक का नामकरण, IMHO फिर से, कोड के स्रोत संस्करण को शामिल करना चाहिए, संस्करण नियंत्रण प्रणाली के बाहर, परिवर्तन होने पर पहली तारीख, साथ ही परिवर्तन अनुरोध संख्या। कारण यह है कि, अगर वीसीएस को बदलने का निर्णय होता है, तो कोड के संस्करण का इतिहास है, लेखक कौन था और साथ ही परिवर्तन अनुरोध संख्या जिसे डेवलपर्स संदर्भित कर सकते हैं (यदि उन्हें यह जानने की आवश्यकता है कि अनुरक्षक ने क्या किया / तो उसने किया)। इस प्रकार, हमारे संगठन में, हमारा प्रारूप इस प्रकार है:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"अगर वीसीएस को बदलने का फैसला होता है, तो कोड के संस्करण का इतिहास है" मुझे उम्मीद है कि कोई भी समझदार संगठन वीसीएस को माइग्रेट किए बिना इतिहास (कम से कम हाल के इतिहास) पर भी विचार नहीं करेगा। आखिरकार, वीसीएस का उपयोग करने की बात है।
7

1
पूरी तरह असहमत। उस तरह की जानकारी को संस्करण नियंत्रण के साथ ट्रैक किया जाना चाहिए। अन्यथा वास्तव में यह जानने का कोई तरीका नहीं है कि किसने लाइनों में बदलाव किया (एक से अधिक लोगों ने एक फ़ाइल पर काम किया है)। इसे फाइल में डालना अन्यत्र उपलब्ध जानकारी का केवल एक कम निष्ठा डुप्लिकेट है।
ब्रायन ओकले

1
@ ब्रायन ओकली, मैं बिल्कुल भी संस्करण नियंत्रण को नहीं हटा रहा हूं, मैं कह रहा हूं कि कोड को पहचानना एक ऐसा तरीका है जो यह जानने का एक तरीका है कि स्रोत पर काम किए बिना, संस्करण नियंत्रण के माध्यम से आवश्यक खोज करने की आवश्यकता के बिना। इसके अलावा, कुछ कोड हैं जो संस्करण नियंत्रण प्रणालियों के बाहर उपलब्ध हैं, क्या लेखक का नाम बाहर रखा जाना चाहिए?
बुहके सिंडी

1

मुझे मूल लेखक का नाम देखना पसंद है, अगर कोड के बारे में जवाब के लिए मेरी खोज शुरू करने के लिए केवल किसी को ढूंढना है। (लेखक के पास आमतौर पर कोई याद नहीं है, लेकिन यह कम से कम एक शॉट है!)

मैं आपको सलाह दूंगा कि आप मूल लेखक के नीचे अपना नाम जोड़ें।

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


तीसरे पैराग्राफ के लिए +1, चूंकि मूल लेखक किसी अन्य व्यक्ति को जान सकता है, जिसने कोड में कुछ किया है, लेकिन उस पर अपना नाम नहीं रखा है।
कोयोटे 21

1

@Author टिप्पणियों पर मेरी नीति है:

  1. यदि यह एक बिल्कुल नई फ़ाइल है, तो मैंने खुद को @author के रूप में रखा।
  2. यदि यह एक मौजूदा फ़ाइल है, तो मैं जो कुछ भी फ़ाइल में करता हूँ, मैं @author को अकेला छोड़ देता हूँ।

यदि आपके पास किसी चीज़ पर प्रश्न हैं, तो इससे कोई फर्क नहीं पड़ता कि फ़ाइल का @author कौन है - यह मायने रखता है कि आपके द्वारा संपादित किए जा रहे फ़ाइल के किस भाग का @author है। यही तो[git/svn/whatever] blame लिए है?

IMO, @author को दूर जाना होगा।


एक ओर, आप अपने आप को एक नई फ़ाइल में लेखक के रूप में सूचीबद्ध करते हैं। दूसरी तरफ, आप चाहते हैं कि लेखक दूर जाए?
एंथनी Pegram

1
कंपनी कोडिंग मानकों को @author टैग की उपस्थिति की आवश्यकता होती है। अन्यथा, मैं इसका बिल्कुल भी उपयोग नहीं करूंगा (क्योंकि मैं चाहता हूं कि वह चला जाए :))।
माइकल मौसा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.