2008-09-23 16 views

उत्तर

12

कोड में जो चीजें मैं ढूंढता हूं उनमें से एक इकाई परीक्षण है। यह इसे पुन: सक्रिय करने की आजादी देगा। इसलिए यदि कोड में परीक्षण नहीं हैं तो मैं इसे विरासत कोड मानता हूं।

+1

एक व्यावहारिक प्रोग्रामर मैं यहाँ देखें। –

1

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

5

उत्कृष्ट "विरासत संहिता के साथ प्रभावी ढंग से काम करने" के लेखक मिशेल पंख, इसे किसी भी कोड के रूप में परिभाषित करता है जिसमें परीक्षण नहीं होते हैं।

+0

हम्म ... तो इसके अनुसार, कोड का 40% आज विकसित किया जा रहा है विरासत कोड ??? – AviD

+0

हां। पंखों के मुताबिक, यदि यह यूनिट परीक्षणों के बिना लिखा गया है, तो यह लिखे जाने वाले मिनट में विरासत कोड बन जाता है। –

+0

ओह आओ! हां, यूनिट परीक्षण महत्वपूर्ण हैं, लेकिन यह परिभाषा इसे बहुत दूर ले रही है। विरासत का मतलब पुराना है। परीक्षण के बिना कोड पुराना नहीं है, यह सिर्फ **** – Treb

0

शायद मैं गलत हूं, लेकिन मुझे नहीं लगता कि इसके लिए एक स्थापित मीट्रिक है।

आमतौर पर कोड का एक टुकड़ा विरासत माना जाता है, जब इसे कम से कम 5-6 रिलीज चक्र (शायद अधिक) देखा जाता है। अधिकतर नहीं, मूल कार्यान्वयन अब और आसपास नहीं है और कोड के माध्यम से बनाए रखा जाता है।

-1

मुझे किसी वास्तविक मीट्रिक के बारे में पता नहीं है जिसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कुछ "विरासत कोड" है या नहीं, लेकिन लिखित से भी पुराना कुछ भी विरासत माना जा सकता है। विरासत कोड का मतलब विभिन्न लोगों/संगठनों के लिए अलग-अलग चीजें हैं, इसलिए यह वास्तव में कुछ हद तक व्यक्तिपरक है।

8

कोड हैं:

  1. नए कोड है कि एक ही या कार्यक्षमता या बेहतर
  2. वर्तमान सिस्टम द्वारा प्रयुक्त नहीं किया जा रहा है लागू करता है द्वारा प्रतिस्थापित किया गया
  3. किसी और कुल मिलाकर कुछ द्वारा प्रतिस्थापित किया जा करने के लिए जल्द ही है
  4. ऐतिहासिक कारणों के लिए संग्रहीत किया गया है
  5. जब विक्रेताओं यह
का समर्थन करना बंद
+0

वह नहीं है जिसे आप क्रूर कहते हैं। –

4

मुझे विश्वास नहीं है कि एक निश्चित उत्तर है, लेकिन मुझे विश्वास है कि कोड विरासत कोड उन लोगों की संख्या के साथ बढ़ता है जो इसे छूना नहीं चाहते हैं और इसे बदलने की संभावना से इसका कारण बन जाएगा टूटना।

0

देवताओं परिसर छोड़ने के लगभग कुछ सेकंड बाद। :)

हैं ...

वहाँ नई सुविधाओं

आप किसी को भी है कि परियोजना पर काम कर मानते हैं नहीं मिल सकता है के लिए बैंक में पैसे नहीं है कि

के स्रोत कोड फिक्सिंग की जरूरत है आपके पास जिस परियोजना का मालिक है वह एमआईए

चला गया है ... तो आप विरासत कोड पर काम कर रहे हैं।

0
  • जब कोड पुराना हो जाता है तो आप उस डेवलपर से कभी नहीं मिले जो मूल रूप से कोड लिखा था।
  • जब तृतीय पक्ष पुस्तकालय अब समर्थित नहीं हैं।
5

शायद एक बेहतर सवाल कोड के टुकड़े को गैर विरासत के रूप में चिह्नित करेगा।

मेरे लिए विरासत का मतलब अपरिवर्तनीय है। तो जैसे ही आप इसे बदलने में 'सक्षम' नहीं हैं, यह विरासत है।

क्या यह क्षमता निश्चित आवश्यकताओं, टूटने, ज्ञान हानि, या कुछ अन्य प्रभावों से हटा दी गई है, यह काफी हद तक अप्रासंगिक है।

एक संबंधित नोट यह है कि मुझे नहीं लगता कि मैं कभी भी सटीक शब्द विरासत का उपयोग करता हूं क्योंकि यह उपयोगी होने के लिए बहुत सारी भावनाओं को उत्तेजित करता है।

6

हम अवधि "विरासत" का उपयोग उपयोग में किसी भी कोड का उल्लेख करने, अभी भी, प्रौद्योगिकी का उपयोग कर हम में सक्रिय विकास को बंद कर दिया है विकसित की है।

यह है कोड है कि हम नहीं बल्कि में संशोधित से नवीनतम उपकरण का उपयोग कर फिर से लिखने होगा इसकी वर्तमान स्थिति

1

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

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

+0

मैं खुद इस दृष्टिकोण को पसंद करता हूं। एक बार कोड लिखा गया है, यह "विरासत" है कि क्या ऐसे परीक्षण हैं जो कोड को कवर करते हैं या नहीं। आपके पास ऐसे परीक्षण हो सकते हैं जो पहले से लिखे गए कोड को कवर करते हैं, कोई भी कोड के बारे में परिचित नहीं है, और/या "पुरानी" तकनीक का उपयोग कर रहा है ... –

0

आम तौर पर लोग विरासत कोड के रूप में कुछ संदर्भित करते हैं जब कोई भी अभी भी आसपास से परिचित नहीं है या कोड को बनाए रखने में सहज महसूस करता है।

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

0

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

तो, ऐसी परिस्थितियों में, स्थिति खराब हो सकती है, बढ़ती दर पर खराब हो सकती है।

1

कई स्थानों पर विरासत कोड को "बिना परीक्षण के कोड" के रूप में परिभाषित किया गया है। मुझे नहीं लगता कि वे परीक्षण के प्रकारों में विशिष्ट हैं, लेकिन सामान्य रूप से, यदि आप किसी अज्ञात घटना के डर के बिना अपने कोड में कोई बदलाव नहीं कर सकते हैं, तो यह जल्दी से घूमता है।

देखें "Working Effectively with Legacy Code"

संबंधित मुद्दे