टीम के साथियों को कैसे बताएं कि मैंने किसी वस्तु में क्या बदलाव किए हैं? [बन्द है]


9

मान लीजिए कि मेरे पास एक PHP ऑब्जेक्ट है, तो हम कहते हैं: companyObj।

class companyObj
{
  private company_name;
  private company_address;

  public function print_contact()
  {
    //logic
  }
}

यह वह वस्तु है जिसे मैंने लिखा, और टीम के साथियों के साथ साझा किया। अब मैं इसे और अधिक शक्तिशाली बनाना चाहूंगा, जैसे:

class companyObj
{
  private company_name;
  private company_address;
  private company_contact_person;

  public function print_contact()
  {
    //logic updated
  }
}

अब, मैं अपने टीम के साथियों को कैसे सूचित कर सकता हूं कि मेरी वस्तु में अधिक विशेषताएँ हैं जो वे सेट कर सकते हैं?

विकास टीम में सभी को ई-मेल भेजने के बजाय, मैं टीम को कैसे जानता हूं कि क्या हो रहा है, जब मैं नहीं चाहता कि मेरे साथी अपने समय को देखने के लिए अपना समय बर्बाद करें, तो स्रोत कोड स्तर पर क्या बदला है?


7
svn मदद कर सकते हैं, क्योंकि उन्हें पता चल जाएगा कि वे कोड में कुछ बदल गए हैं..तो वे सीधे आपके परिवर्तनों को अपडेट कर सकते हैं (विशिष्ट फ़ाइल आपके मामले में हो सकती है) .. बिना यह जाने कि क्या बदल गया है (वैकल्पिक रूप से यदि वे नहीं चाहते हैं )
प्रेस्लीडियस

1
यह एक ऐसा वर्ग है जिस पर आपने कोई वस्तु नहीं लिखी है :) वस्तुओं का समय पर संकलन नहीं होता है
रौन एफएस

जवाबों:


10

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

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

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

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

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

उत्तरार्द्ध मामले में, इसे ठीक से दस्तावेज करने का एक अच्छा कारण हो सकता है। IMHO डिज़ाइन दस्तावेज़ सबसे अच्छे होते हैं जब वे एक मोटे दाने वाले, सिस्टम के उच्च स्तरीय अवलोकन की पेशकश करते हैं, जबकि कार्यान्वयन विवरण कोड में होते हैं ( DRY सिद्धांत का पालन )।


2
+1 मुझे लगता है कि टीम के सभी लोगों को कोड के नवीनतम संस्करण में "नेत्रहीन" अपडेट नहीं करने के लिए शिक्षित होने की आवश्यकता है लेकिन संक्षेप में जांचें कि यह क्या किया गया है और इसे करने से पहले क्या किया गया है। और जैसा कि आपने कहा, एक छोटी लेकिन सटीक टिप्पणी बहुत अच्छी है।
जलयंत्र

10

क्या आपने केवल उनसे बात करने पर विचार किया है ? एक छोटी बैठक को शेड्यूल करें: "हे, मैंने ऑब्जेक्ट एक्स में कुछ बदलाव किए हैं, मैं आपको दिखाना चाहता हूं कि क्या बदला और क्यों"। या, बस प्रत्येक व्यक्ति से व्यक्तिगत रूप से बात करें यदि कोई बैठक बहुत औपचारिक या विघटनकारी लगती है।


+1, किसी तरह सबसे स्पष्ट उत्तर पहले के बारे में नहीं सोचा गया है!
NoChance

2

यदि आपके पास एक टीम है तो आपके पास संभवतः एक डिज़ाइन दस्तावेज़ भी है। अगर नहीं। उस पर आरंभ करें। और अपने डिजाइनों को मैप करने के लिए कुछ यूएमएल टूल का उपयोग करें।


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

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

1
मैं एक उच्च स्तरीय वास्तुकला / डिज़ाइन दस्तावेज़ के महत्व के बारे में सहमत हूं (जैसा कि मेरे उत्तर में उल्लेख किया गया है)। हालाँकि, यह उच्च स्तर पर ठीक है ताकि इसे माइनसक्यूल परिवर्तनों के साथ लगातार अपडेट करने की आवश्यकता न हो।
पेर्ट टॉरक

1

आप कोड के भीतर doxygen जैसे उपकरण का उपयोग कर सकते हैं । अब ऐसी स्क्रिप्ट बनाएं जो डॉक्युमेंटेशन डॉक्यूमेंटेशन जेनरेट करे और इसे नियमित रूप से चलाए, शायद आपके नाइटली बिल्ड के हिस्से के रूप में (आप एक नाइटली बिल्ड करें, है ना?)।

मुझे लगता है कि आप नए होने के रूप में इसे उजागर करने के लिए अपने अतिरिक्त में doxygen में एक कस्टम विशेषता असाइन कर सकते हैं।

यदि आपके टीम के साथी कोई भी अच्छे हैं, तो वे नए दस्तावेज के माध्यम से जाएंगे।


शायद मैंने कभी अच्छे साथियों के साथ काम नहीं किया है, क्योंकि मैंने इस काम को कभी अभ्यास में नहीं देखा है :-(
Péter Török

@ PéterTörök मुझे स्वीकार करना होगा कि वे दूर हैं और कुछ के बीच में, खुद को शामिल किया।
तेहनीत

0

अब, मैं अपने टीम के साथियों को कैसे सूचित कर सकता हूं कि मेरी वस्तु में अधिक विशेषताएँ हैं जो वे सेट कर सकते हैं?

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

यदि आप एक आईडीई का उपयोग करते हैं जो ऑटो पूरा करने का समर्थन करता है, तो आपके साथियों को आपके परिवर्तन को नोटिस करना चाहिए। मुझे उम्मीद है कि आप अपना कोड कमेंट करेंगे।

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