2011-02-04 19 views
5

विज़ुअलाइज़ करें मेरे पास एक जटिल सी # विधि है जिसमें उपयोगकर्ता के लिए एक्सेस अधिकार निर्धारित करने वाले बयान का एक सेट होता है।एक सी # विधि तर्क

मैं इस तर्क को एक वर्कफ़्लो आरेख या कुछ समान कहने के लिए एक तरीका ढूंढ रहा हूं।

यह .NET 3.5 और विजुअल स्टूडियो 2010

कौन सा उपकरण (अधिमानतः स्वतंत्र रूप से उपलब्ध) है कि ऐसा कर सकते हैं उपलब्ध हैं उपयोग कर रहा है?

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

धन्यवाद

संपादित करें: मेरे जांच के हिस्से के रूप में मैं Flowchart4C# मिला लेकिन यह $ 200 है एकमुश्त खरीदने के लिए और परीक्षण मुझे इस बात की पुष्टि यह क्या मैं इसे करना चाहते हैं करता नहीं दूँगी! (< 5 सशर्त बयान)।

+0

बस स्पष्ट होना, आप देख रहे हैं करने के लिए है एक स्वचालित उपकरण के लिए सही? –

+6

लगता है जैसे आप इस विशाल विधि को दोबारा बदलना चाहते हैं ताकि मुख्य भाग प्रारंभ के रूप में सादे अंग्रेजी की तरह पढ़ सके। – Marco

+1

मैं कोशिश नहीं करता। सबसे पहले, यूनिट परीक्षण लिखें जो पथ को कवर करते हैं और वर्तमान व्यवहार को सत्यापित करते हैं। दूसरा, विधियों को निकालने के द्वारा कोड को स्पष्ट करने के लिए स्वचालित रीफैक्टरिंग टूल का उपयोग करें, आदि – TrueWill

उत्तर

3

अपने विधि refactor: यहाँ सशर्त,

http://www.refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html
http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html

लेकिन से निपटने के लिए कुछ सुझाव शायद यह सबसे अच्छा

http://www.refactoring.com/catalog/replaceConditionalWithVisitor.html

+0

धन्यवाद @ मार्को - मैंने गार्ड क्लॉज को सबसे प्रासंगिक पाया - मेरे पास द्रव उपयोगकर्ता प्रकारों को असाइन किए गए कार्यों के सेट हैं। – Russell

+0

प्रश्न: तर्क को अलग-अलग तरीकों से दोबारा करने के लिए मानचित्र की आवश्यकता को अस्वीकार करने का एक तरीका है। मेरा कार्य प्रदर्शन महत्वपूर्ण है (वेब ​​अनुरोध हर बार एक सुरक्षा जांच होने के नाते) इसे कई तरीकों से तोड़ने से प्रदर्शन को नुकसान पहुंचाएगा? – Russell

+1

मैं फ़ंक्शन कॉल को अनुकूलित करने के लिए कंपाइलर पर भरोसा करता हूं। जब तक पासिंग पैरामीटर में डेटा की बहुत प्रतिलिपि न हो, मैं पहले पठनीय कोड पसंद करूंगा, और यदि आवश्यक हो तो बाद में प्रदर्शन के बारे में चिंता करें। – Marco

1

गैर-स्वचालित: dia (विंडोज़, लिनक्स: फ्लोचार्ट-टेम्पलेट्स) या Inkscape (विंडोज़, लिनक्स, मैक: वेक्टर ग्राफिक्स) का उपयोग करें।

स्वचालित: पहले रिएक्टर, फिर स्वचालित करें।

+0

धन्यवाद @Leonidas - मुझे लगता है कि दीया एक महान मुफ्त उपकरण है।:) मैं इसे स्वचालित रूप से आदर्श रूप से मैप करने पर काम कर रहा हूं। – Russell

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