कोई भी उपयोगी मीट्रिक ठीक होगाजब आप कहते हैं कि कोड विरासत कोड है?
उत्तर
कोड में जो चीजें मैं ढूंढता हूं उनमें से एक इकाई परीक्षण है। यह इसे पुन: सक्रिय करने की आजादी देगा। इसलिए यदि कोड में परीक्षण नहीं हैं तो मैं इसे विरासत कोड मानता हूं।
शब्द "विरासत कोड" व्यक्तिपरक है और शायद यह एक लोड अवधि है। लेकिन आम तौर पर मैं इस विचार की सदस्यता लेता हूं कि विरासत कोड वह है जो यूनिट-टेस्टेबल नहीं है और इस तरह रीफैक्टर करना मुश्किल है।
उत्कृष्ट "विरासत संहिता के साथ प्रभावी ढंग से काम करने" के लेखक मिशेल पंख, इसे किसी भी कोड के रूप में परिभाषित करता है जिसमें परीक्षण नहीं होते हैं।
हम्म ... तो इसके अनुसार, कोड का 40% आज विकसित किया जा रहा है विरासत कोड ??? – AviD
हां। पंखों के मुताबिक, यदि यह यूनिट परीक्षणों के बिना लिखा गया है, तो यह लिखे जाने वाले मिनट में विरासत कोड बन जाता है। –
ओह आओ! हां, यूनिट परीक्षण महत्वपूर्ण हैं, लेकिन यह परिभाषा इसे बहुत दूर ले रही है। विरासत का मतलब पुराना है। परीक्षण के बिना कोड पुराना नहीं है, यह सिर्फ **** – Treb
शायद मैं गलत हूं, लेकिन मुझे नहीं लगता कि इसके लिए एक स्थापित मीट्रिक है।
आमतौर पर कोड का एक टुकड़ा विरासत माना जाता है, जब इसे कम से कम 5-6 रिलीज चक्र (शायद अधिक) देखा जाता है। अधिकतर नहीं, मूल कार्यान्वयन अब और आसपास नहीं है और कोड के माध्यम से बनाए रखा जाता है।
मुझे किसी वास्तविक मीट्रिक के बारे में पता नहीं है जिसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कुछ "विरासत कोड" है या नहीं, लेकिन लिखित से भी पुराना कुछ भी विरासत माना जा सकता है। विरासत कोड का मतलब विभिन्न लोगों/संगठनों के लिए अलग-अलग चीजें हैं, इसलिए यह वास्तव में कुछ हद तक व्यक्तिपरक है।
कोड हैं:
- नए कोड है कि एक ही या कार्यक्षमता या बेहतर
- वर्तमान सिस्टम द्वारा प्रयुक्त नहीं किया जा रहा है लागू करता है द्वारा प्रतिस्थापित किया गया
- किसी और कुल मिलाकर कुछ द्वारा प्रतिस्थापित किया जा करने के लिए जल्द ही है
- ऐतिहासिक कारणों के लिए संग्रहीत किया गया है
- जब विक्रेताओं यह
वह नहीं है जिसे आप क्रूर कहते हैं। –
मुझे विश्वास नहीं है कि एक निश्चित उत्तर है, लेकिन मुझे विश्वास है कि कोड विरासत कोड उन लोगों की संख्या के साथ बढ़ता है जो इसे छूना नहीं चाहते हैं और इसे बदलने की संभावना से इसका कारण बन जाएगा टूटना।
देवताओं परिसर छोड़ने के लगभग कुछ सेकंड बाद। :)
हैं ...
वहाँ नई सुविधाओं
आप किसी को भी है कि परियोजना पर काम कर मानते हैं नहीं मिल सकता है के लिए बैंक में पैसे नहीं है कि
के स्रोत कोड फिक्सिंग की जरूरत है आपके पास जिस परियोजना का मालिक है वह एमआईए
चला गया है ... तो आप विरासत कोड पर काम कर रहे हैं।
- जब कोड पुराना हो जाता है तो आप उस डेवलपर से कभी नहीं मिले जो मूल रूप से कोड लिखा था।
- जब तृतीय पक्ष पुस्तकालय अब समर्थित नहीं हैं।
शायद एक बेहतर सवाल कोड के टुकड़े को गैर विरासत के रूप में चिह्नित करेगा।
मेरे लिए विरासत का मतलब अपरिवर्तनीय है। तो जैसे ही आप इसे बदलने में 'सक्षम' नहीं हैं, यह विरासत है।
क्या यह क्षमता निश्चित आवश्यकताओं, टूटने, ज्ञान हानि, या कुछ अन्य प्रभावों से हटा दी गई है, यह काफी हद तक अप्रासंगिक है।
एक संबंधित नोट यह है कि मुझे नहीं लगता कि मैं कभी भी सटीक शब्द विरासत का उपयोग करता हूं क्योंकि यह उपयोगी होने के लिए बहुत सारी भावनाओं को उत्तेजित करता है।
हम अवधि "विरासत" का उपयोग उपयोग में किसी भी कोड का उल्लेख करने, अभी भी, प्रौद्योगिकी का उपयोग कर हम में सक्रिय विकास को बंद कर दिया है विकसित की है।
यह है कोड है कि हम नहीं बल्कि में संशोधित से नवीनतम उपकरण का उपयोग कर फिर से लिखने होगा इसकी वर्तमान स्थिति
मेरी राय में लिखा गया है कि सभी कोड विरासत कोड है। मूल उद्देश्य से कुछ समय लग सकता है और कोड के बारे में किए गए सभी निर्णय भूल गए हैं लेकिन जल्द ही या बाद में आप कल्पना नहीं कर सकते कि वे इसे लिखते समय क्या सोच रहे थे। आपने विरासत कोड कभी नहीं लिखा है, है ना?
डेवलपर ने इमारत छोड़ने के बाद यूनिट परीक्षण या कुछ उपाय जैसे सेकंड का उपयोग करना वास्तव में माप नहीं करता है कि कोड विरासत कोड है या नहीं। विरासत कोड में यूनिट परीक्षण और टिप्पणियों का एक अच्छा सेट हो सकता है और इसमें सख्त कोड समीक्षा और अन्य विश्लेषण हो सकते हैं। इसका मतलब यह नहीं है कि कोड अभी भी कार्यक्रम के लिए प्रासंगिक है। यह सिर्फ सुझाव देता है कि कोड तुलनात्मक रूप से अच्छी तरह लिखा जा सकता है। और यदि यह अब प्रासंगिक नहीं है, तो कोड वास्तव में उस समस्या को हल करने में कठिन होगा जिससे प्रोग्राम विकसित किया गया है।
मैं खुद इस दृष्टिकोण को पसंद करता हूं। एक बार कोड लिखा गया है, यह "विरासत" है कि क्या ऐसे परीक्षण हैं जो कोड को कवर करते हैं या नहीं। आपके पास ऐसे परीक्षण हो सकते हैं जो पहले से लिखे गए कोड को कवर करते हैं, कोई भी कोड के बारे में परिचित नहीं है, और/या "पुरानी" तकनीक का उपयोग कर रहा है ... –
आम तौर पर लोग विरासत कोड के रूप में कुछ संदर्भित करते हैं जब कोई भी अभी भी आसपास से परिचित नहीं है या कोड को बनाए रखने में सहज महसूस करता है।
यूनिट परीक्षण कोड के साथ अपरिचित लोगों के लिए अपरिचित लोगों के लिए आसान बनाता है, इसलिए सिद्धांत यह है कि यह कोड को "विरासत" बनने से रोकने में मदद करता है।
अक्सर जब कोड विरासत होता है तो यह एक अलग तरीके से बदल जाता है। लोग डरते हैं इसे बदलने के लिए, लेकिन त्वरित और गंदे होने के कारण भी परिवर्तन होते हैं क्योंकि कोई भी पूर्ण परिणामों को समझता नहीं है। कोड डुप्लिकेशन समस्या उत्पन्न हो सकती है, क्योंकि लोग गहरे परिवर्तनों से जुड़े जोखिम को नहीं लेना चाहते हैं।
तो, ऐसी परिस्थितियों में, स्थिति खराब हो सकती है, बढ़ती दर पर खराब हो सकती है।
कई स्थानों पर विरासत कोड को "बिना परीक्षण के कोड" के रूप में परिभाषित किया गया है। मुझे नहीं लगता कि वे परीक्षण के प्रकारों में विशिष्ट हैं, लेकिन सामान्य रूप से, यदि आप किसी अज्ञात घटना के डर के बिना अपने कोड में कोई बदलाव नहीं कर सकते हैं, तो यह जल्दी से घूमता है।
- 1. विरासत कोड
- 2. आप कैसे कहते हैं कि आपके यूनिट परीक्षण सही हैं?
- 3. विरासत कोड -
- 4. विरासत जावा-कोड
- 5. विरासत/quirks मोड कोड
- 6. विरासत वीबी 6 कोड
- 7. आप कोड को दोबारा कब करते हैं?
- 8. आप सी कोड से पायथन कोड कैसे कॉल करते हैं?
- 9. सी # कोड पर चर्चा करते समय, आप कैसे कहते हैं '`टी?' '
- 10. आप कोड कवरेज कितनी दूर लेते हैं?
- 11. आप "चेक आउट" कोड कैसे करते हैं?
- 12. आप अपना कोड कब तक रखते हैं?
- 13. आप नए कोड
- 14. आप अपने कोड को क्यों रोकते हैं?
- 15. कोड जेनरेटर खराब हैं?
- 16. विरासत डायरेक्टड्रा कोड को बदलना
- 17. जब आप कहते हैं कि "यह भाषा JVM पर चलती है" तो इसका वास्तव में क्या अर्थ है?
- 18. असाइनमेंट ऑपरेटर क्या है <- जब आप इसे ज़ोर से कहते हैं तो कहा जाता है?
- 19. गुरु कहते हैं कि एलडी_LIBRARY_PATH खराब है - विकल्प क्या है?
- 20. जब लोग कहते हैं कि सी ++ में "अनावश्यक व्याकरण" है तो लोगों का क्या अर्थ है?
- 21. कोड कवरेज क्या है और आप इसे कैसे मापते हैं?
- 22. आप रूबी में ऑपरेटर को क्या कहते हैं?
- 23. क्या होता है जब आप सी # में एक स्थिर विधि कहते हैं?
- 24. कोड कहां कहा जाता है जब आप getAplicationContext() को कॉल करते हैं?
- 25. आप कैसे सुनिश्चित करते हैं कि ईएफ कोड में तालिका संबंधों पर कैस्केड हटाएं सक्षम है?
- 26. WPF: Storyboard.TargetName काम करता है, लेकिन सेटर टार्गेटनाम चलो कहते हैं कि हम इस तरह एक XAML कोड करते नहीं
- 27. एमवीसी: जब आप "सबमिट" बटन पर क्लिक करते हैं तो कौन सा कोड बुलाया जाता है?
- 28. आप विरासत कोड के साथ परीक्षण संचालित विकास को कैसे कार्यान्वित कर सकते हैं?
- 29. आप IENumerable <Foo> पर क्या कहते हैं?
- 30. आप कहते हैं कि regex में निम्न कार्य कैसे करते हैं RegEx
एक व्यावहारिक प्रोग्रामर मैं यहाँ देखें। –