2011-04-13 29 views
5

मुझे एक मौजूदा सी # Winforms आवेदन फिर से लिखने के लिए कहा गया है (जमीन से ऊपर)। दुर्भाग्यवश, इस कोड को पिछले तीन या चार वर्षों में कम से कम एक दर्जन विभिन्न डेवलपर्स द्वारा संशोधित किया गया है, जिनमें से कोई भी किसी भी प्रकार के कोडिंग मानक का पालन नहीं करता है। यह कहने के लिए कि यह कोड आधार एक गड़बड़ है जो इसे विनम्रतापूर्वक रखेगा। कोड (~ 24k लाइनों) की परिमाण को देखते हुए और तथ्य यह है कि कोड मेरे लिए बिल्कुल नया है, मैं किसी प्रकार की उपयोगिता ढूंढना चाहता हूं जो मुझे यह समझने में मदद करेगी कि यह एप्लिकेशन उच्च स्तर पर कैसे काम करता है। ध्यान रखें कि इस कोड में अच्छे ओओपी प्रथाओं की प्रचुरता प्रतीत नहीं होती है इसलिए मुझे वर्ग आरेखों की तुलना में कुछ और अधिक विस्तृत जानकारी चाहिए। मैंने अनुक्रम आरेखों को उत्पन्न करने के संदर्भ देखे हैं जो कि मैं जो खोज रहा हूं उससे अधिक हो सकता है लेकिन मेरे पास केवल वीएस -2010 प्रीमियम है और मैं इस धारणा के तहत हूं कि यह कार्यक्षमता केवल वीएस अल्टीमेट एसकेयू के साथ प्रदान की जाती है। मेरे पास .NET परावर्तक के वर्तमान संस्करण तक पहुंच है और मैंने देखा है कि कुछ लोगों का उल्लेख है कि इसके लिए प्लग-इन हैं जो उपयोगी हो सकते हैं लेकिन मेरे पास कोई विशिष्ट नाम नहीं है।सी # कोड प्रवाह मानचित्रण/दृश्यता उपयोगिता?

+0

किसी दिए गए कार्य में कौन सा कोड शामिल है, यह जानने के लिए, मैं पार्टकॉवर या एक (बेहतर) वाणिज्यिक विकल्प जैसे कोड कवरेज टूल का उपयोग करूंगा। वह अक्सर मुझे समझने में मदद करता है। हालांकि, मैं एक उत्तर के रूप में पोस्ट नहीं कर रहा हूं क्योंकि मुझे वास्तव में यह याद नहीं है कि यह कैसे करें। – Qwertie

उत्तर

2

NDepend पर एक नज़र डालें, यह एक कोड प्रबंधन है कि आप के लिए code querying, code rules, smart technical debt estimation, निर्भरता graph और मैट्रिक्स, code diff एक आधार रेखा के बाद से एक बहुत धन्यवाद मदद कर सकता है NT उपकरण ...

ओह, और this related question भी।

6

खरोंच से कोड नए सिरे से लिखना एक आपदा हो सकता है: इस देखें: http://www.joelonsoftware.com/articles/fog0000000069.html

यह एक आसान काम के रूप में आप का उल्लेख तुम से पहले एक दर्जन से अधिक डेवलपर्स वहाँ थे नहीं है। प्रत्येक डेवलपर के पीछे अपनी पद्धति और सिस्टम का अपना तर्क है। प्रत्येक यह अपना स्वयं का तरीका है।

यहाँ आप एक और डेवलपर्स तर्क

  • या नहीं, डेवलपर अभी भी चारों ओर है या पदों या बुरा बदली हुई नौकरियों
  • या यहां तक ​​कि अगर ढूँढना बदल गया है के बाद लग सकता है

    • समस्याओं में से कुछ कर रहे हैं एक तकनीकी विनिर्देश मौजूद है (यह सबसे महत्वपूर्ण है)
    • विरासत कोड जिसे मूल रूप से लिखा गया था, फिर पैच किया गया, फिर बार-बार पैच किया गया ...
    • कस्टम कोड है कि हो सकता है एकीकृत या आवेदन
    • सुरक्षा के भीतर लिखा गया है अगर वहाँ किसी भी
    फ़्लोचार्ट का एक समूह होने के अलावा

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

    आपने ओओपी का उल्लेख किया है, क्या आप स्पेगेटी कोड लेने और ऑब्जेक्ट उन्मुख मॉडल को फिट करने के लिए एक संपूर्ण पुनर्लेखन करने की योजना बना रहे हैं? यदि ऐसा है तो यह बहुत काम है ... और 12 पूर्व मस्तिष्क इस पर काम कर रहे हैं, किसी के तर्क आपको यात्रा करने के लिए बाध्य है।

    क्षमा करें मेरे पास सबसे अच्छी सलाह नहीं है, लेकिन यह एक कठिन काम हो सकता है ... विशेष रूप से यदि आपके सामने उन डेवलपर्स नहीं हैं।

    अधिक जानकारी के लिए इन अतः धागे देखें:

  • +0

    हाय जॉन। आपके त्वरित उत्तर के लिए धन्यवाद। आप कई अच्छे अंक बनाते हैं। दुर्भाग्यवश, यह उन स्थितियों में से एक है जहां मुझे बताया जा रहा है कि "यही वह है जिसे हम करने जा रहे हैं"। मैंने वास्तव में अपने नियोक्ता को इन कुछ तर्कों को सामने लाया लेकिन उन्होंने फैसला किया है कि एक पुनः लिखना जरूरी है और इसे करने के लिए प्रतिबद्ध हैं (या इसके बजाय मुझे ऐसा करने का कार्य करना, जैसा भी मामला हो)। :-( – user685869

    +0

    यदि आपको फिर से लिखना है (व्यक्तिगत रूप से मैं उन लोगों का आनंद लेता हूं: डी) आप कार्यक्षमता के टुकड़ों को अलग करने की कोशिश कर सकते हैं - नई परियोजनाओं में उपयोगी टुकड़ों की प्रतिलिपि बनाएँ और यूनिट परीक्षण लिखें - नए संस्करण में उपयोग करने के लिए। ओह और बीटीडब्ल्यू, कब एक नया जीयूआई ऐप लिखना मैं अद्यतन नियंत्रण सीखने की सिफारिश करता हूं - http://loyc-etc.blogspot.com/2011/04/update-controls.html - एक बार जब आप इसे समझ लेंगे, तो यह विकास में तेजी लाएगा। – Qwertie

    0

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

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

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