2009-03-11 17 views
13

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

इस प्रश्न में मेरा इरादा सरल उपयोगी आरेखण तकनीक लोगों को वास्तव में का उपयोग करने और सीखने के लिए नए खोजने के लिए है।

क्या आप फ्लो-चार्ट, डेटा फ्लो आरेख, ईआर आरेख, इत्यादि का उपयोग करते हैं?

वेब अनुशंसाओं से भरा है! लेकिन असली प्रोग्रामर, डिजाइनर, और कोड रखरखाव वास्तव में उनके दिन-प्रतिदिन में उपयोग करते हैं।

धन्यवाद आपकी प्रतिक्रिया

उत्तर

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

अगर वहाँ इस तरह के एक नई धारा में एकाधिक डेटा स्ट्रीम में सह-संबंध के रूप में कुछ करने के लिए एक मुश्किल एल्गोरिथ्म है तो मैं आम तौर पर एक प्रवाह चार्ट का उपयोग एल्गोरिथ्म बाहर काम करने होंगे।

यदि समाधान को राज्य के ज्ञान की आवश्यकता है तो एक राज्य आरेख का भी उपयोग किया जाता है।

वे लोग हैं जिनका मैं सबसे अधिक उपयोग करता हूं।

डेटा वेयरहाउस डिज़ाइन करते समय मैं स्टार स्कीमा को डेटा स्टोर करने के तरीके को जानने के लिए आकर्षित करता हूं। ट्रांजेक्शन डीबी डिज़ाइन करते समय मैं अपने डेटा स्टोरेज को काम करने के लिए एंटिटी रिलेशनशिप आरेखों का उपयोग करता हूं।

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

+0

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

1

के लिए मैं मुख्य उत्पाद के साथ मैं काम करते हैं और विकसित की एक Flow chart है।

मेरी टीम अक्सर हमारे लिए लागू होने वाले नए हिस्सों को डिजाइन करते समय सफेद बोर्डों पर UML diagram स्केच का उपयोग करती है। वे डिजाइन पैटर्न बनाने और कक्षाओं की उच्च स्तरीय संरचना को मॉडलिंग करने में बहुत उपयोगी हैं जिनकी आवश्यकता होगी। ये कभी पूर्ण उड़ा यूएमएल हालांकि ...

12

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

+1

+1। – Abizern

+0

मुझे लगता है कि पुराने फैशन कलम और पेपर मेरे टूलबॉक्स से कभी नहीं चलेगा इससे कोई फर्क नहीं पड़ता कि वे क्या करेंगे ... –

6

मैं मॉडलिंग के लिए एक व्हाइटबोर्ड का उपयोग करता हूं, इसलिए मुझे लगता है कि "व्हाइटबोर्ड मॉडलिंग भाषा" मेरा जवाब होगा।

+0

डब्लूएमएल के लिए +1। मेरा पसंदीदा मार्ग भी। – RSolberg

+0

यह एक उपकरण है - ओपी जानना चाहता था कि आप किस प्रकार के आरेखों का उपयोग करते हैं। –

+0

@ डीजे, "व्हाइटबोर्ड मॉडलिंग भाषा" मेरे उत्तर में ठीक है। क्या आपको याद आया? –

3

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

बड़े और अधिक जटिल आर्किटेक्चर के लिए मुझे लगता है कि अनुक्रम आरेख व्यवहार को संवाद करने का एक अच्छा तरीका है, खासकर बहु-थ्रेडेड सिस्टम के लिए।

0

मैं संचार के लिए जो भी आवश्यक है उसका उपयोग करता हूं। आमतौर पर यह कुछ भी नहीं है। कभी-कभी यह एक व्हाइटबोर्ड है।

समय-समय पर, मैं Sparx Enterprise Architect का उपयोग करता हूं, जो एक यूएमएल मॉडलिंग उपकरण है, हालांकि यह उस पर सभ्य डायग्राम उत्पन्न करता है। मैंने इसे आवश्यकताओं के लिए उपयोग किया है, केस, गतिविधि, अनुक्रम, डोमेन, और यहां तक ​​कि कक्षा मॉडलिंग, और कभी-कभी कुछ रिवर्स-इंजीनियर ईआर आरेखों का उपयोग किया है। बिंदु प्राप्त करने के लिए जो कुछ भी लेता है।

2

मैं आरेखों को विरासत कोड को तुरंत समझने के तरीके के रूप में उपयोग करता हूं। आरेख बनाने में कुछ काम लगता है, लेकिन यह हमेशा अंत में भुगतान करता है।

आम तौर पर मैं बड़ी तस्वीर पाने के लिए कक्षा आरेखों का उपयोग करता हूं। कभी-कभी अनुक्रम आरेख और यहां तक ​​कि डेटाफ्लो आरेख अगर एक टुकड़ा ओ कोड को समझना बेहद मुश्किल है।

डिजाइन चरण में मैं कक्षा आरेखों का उपयोग करता हूं, और अक्सर राज्य आरेखों का उपयोग करता हूं। यदि राज्य वर्ग अपने राज्य के साथ अलग होता है तो राज्य आरेख सही होते हैं।

1

चर्चा के लिए व्हाइटबोर्ड।

कम अस्थायी रिकॉर्ड के लिए पेन और पेपर।

'चीजों को छेड़छाड़' के लिए कोड स्टब्स।

पोस्टरिटी के लिए परीक्षण और कार्य कोड (व्यापक टिप्पणियों के साथ)।

+0

मुझे ऑर्डरिंग और प्रक्रिया पसंद आई, धन्यवाद! मैं पोस्टरिटी –

2

मैं Sequence Diagrams बहुत उपयोग करता हूं (कागज पर खींचा गया)। मुझे लगता है कि वे मुझे हमारे अनुप्रयोगों में विभिन्न प्रणालियों और घटकों के बीच विधि कॉल और जानकारी के तार्किक प्रवाह का एक अच्छा दृश्य प्रतिनिधित्व देते हैं।

1

मैं किसी भी प्रोजेक्ट के लिए पेपर और व्हाइटबोर्ड पर ईआर और क्लास आरेख का उपयोग करता हूं जो शेल स्क्रिप्ट से बड़ा है।

फ़्लो चार्ट, केवल तभी जब मुझे एक गैर-प्रोग्रामर को प्रक्रिया की व्याख्या करने की आवश्यकता होती है (या यदि यह वास्तव में जटिल प्रक्रिया है और मुझे इसे पहले समझने की आवश्यकता है)।

मेरा पुराना मालिक यह कहता था कि "लड़का सिर्फ सामान खींचना पसंद करता है।"

1

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

तब, जब यह इतना है कि हम वास्तव में प्रलेखन पर काम करने के लिए कुछ समय मिल (और कहा कि लगभग कभी नहीं है), मैं BOUML का उपयोग करें और एक उचित आरेख में आड़ी-तिरछी रेखाएं पुनः बनाने जाएगा।

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

1

मैं एक AJAX विकास वातावरण में काम करता हूं, और अधिकांश बैकएंड कोड जो मैं लिखता हूं, एक रिलेशनल डेटाबेस और फ्रंटेंड जावास्क्रिप्ट (यूजर इंटरफेस) के बीच एक पाइप की तरह काम करता है। इसलिए, सबसे अधिक इस्तेमाल किया जाने वाला 'आरेख' कहता है कि मैं जेएसओएन ऑब्जेक्ट्स का वर्णन करता हूं कि डेटाबेस और इंटरफ़ेस के बीच डेटा को आगे और आगे कैसे पारित किया जाना चाहिए। वे डेटा संरचनाओं को समझने के लिए सरल, सार्वभौमिक और आसान हैं।

उदाहरण:

{ "id": पंक्ति [ 'आईडी'], "नाम": पंक्ति [ 'नाम'], "अनिवार्य": पंक्ति [ 'अनिवार्य'], "rangeDescription":, "globalRate" "यह रेंज है": पंक्ति [ 'वैश्विक'] }

1

मुझे डेटा फ्लो आरेख पसंद है। बहुत। "जो भी काम करता है" के लिए

+0

बेन, आपको डीएफडी के बारे में क्या पसंद है? –

+1

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

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