अनुशंसित .NET / C # कोडिंग मानक? [बन्द है]


19

आपको लगता है कि .NET / C # प्रोजेक्ट्स के लिए क्या कोडिंग मानक महत्वपूर्ण हैं? यह घुंघराले ब्रेसिज़ और स्पेसिंग और पेडेंट्री से निपटने से कुछ भी हो सकता है। या यह अधिक मूलभूत प्रश्न हो सकते हैं जैसे कि .NET फ्रेमवर्क में क्या नाम स्थान से बचने के लिए, कॉन्फिग फाइलों के साथ सर्वोत्तम अभ्यास आदि।

एक ऐसी पोस्ट बनाने से बचने की कोशिश करें जो बस दूसरे के लिए कोरोलरी है। उदाहरण के लिए, एक पोस्ट को कर्ली ब्रेसिज़ पर केंद्रित करना ठीक रहेगा। हम एक शैली बनाम दूसरे का समर्थन करने के लिए दो की जरूरत नहीं है। यह विचार आपके पालतू मानक के लिए वोट करने के लिए नहीं है, बल्कि यह तय करने के लिए है कि मानकों को बनाते समय क्या सोचा जाना चाहिए।

जवाबों:


29

यहाँ .NET फ्रेमवर्क संस्करण 4.0 के लिए कोडिंग मानकों पर आधिकारिक Microsoft गाइड है।

यदि आप 1.1 के लिए पुराना संस्करण चाहते हैं, तो यहां प्रयास करें

जैसा कि वे कहते हैं, मैं जरूरी नहीं कि एक 'टी' का अनुसरण करूं। हालांकि, जब संदेह होता है, तो यह वर्तमान .NET फ्रेमवर्क के अनुरूप होना शुरू करने के लिए सबसे अच्छी जगह है, जो हर किसी पर आसान बनाता है, भले ही वे आपके विशेष प्रोजेक्ट के लिए नए हों या नहीं।


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

क्या मुझे डाउनवोट पर कुछ प्रतिक्रिया मिल सकती है, कृपया?
रयान हेस

क्या आप का पालन नहीं करते?
जेएफओ

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

10

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

आप उन नियमों को भी बदल सकते हैं, जो डिफ़ॉल्ट रूप से आते हैं।



5

हमने इसे अपने कार्यालय में अपनाया। यह लांस हंट द्वारा लिखा गया है, और यह काफी व्यापक है:

http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx


फ्रेमवर्क डिज़ाइन दिशानिर्देशों की तुलना में यह भी संक्षिप्त है। आपको जिन चीज़ों की ज़रूरत है, उनमें से 2 पृष्ठों पर मुद्रित की जा सकती हैं। यह मेरी प्राथमिकता है।
ब्रुक

4

FxCop से शुरू करें । यह आपको अपने मौजूदा कोड में सर्वोत्तम प्रथाओं के उल्लंघन के बारे में बताएगा।


FxCop बायनेरीज़ को देखता है, यह आपको कोडिंग शैली के बारे में नहीं बताएगा, लेकिन यह कुछ मुद्दों को बताएगा।
स्टीव

2

मैं विभिन्न स्रोतों से शैलियों का एक सामान्य सेट चुनने की कोशिश करता हूं। कुछ जिनका उल्लेख पहले नहीं किया गया था:


2

मुझे SSW (एक ऑस्ट्रेलियाई परामर्श कंपनी) द्वारा उपलब्ध कराए गए मानकों की सिफारिश करनी होगी।

न केवल कोडिंग, बल्कि प्रोजेक्ट मैनेजमेंट आदि ... एक अविश्वसनीय रूप से मूल्यवान संसाधन।

http://www.ssw.com.au/ssw/standards/default.aspx


2

तरीके छोटे होने चाहिए

अधिकांश तरीकों को एक कक्षा में अधिकांश क्षेत्रों का उपयोग करना चाहिए।

अपने नाम अच्छे से चुनें।

जैसे क्लीन कोड बुक पढ़ें


2

मैं निम्नलिखित अनुप्रयोगों का उपयोग ऊँट नियमों, विधि नाम और आदि के अलावा एक कोडिंग मानक को बनाए रखने के लिए कर रहा हूँ।

घोस्टडॉक - प्रत्येक विधि के शीर्ष पर एक ऑटो-जनरेटेड टिप्पणी जोड़ता है। आवेदन विधि का अच्छा inital सारांश प्रदान करता है। (नि: शुल्क)

http://submain.com/products/ghostdoc.aspx

रिसर्पर - कोड विश्लेषण और रिफैक्टिंग http://www.jetbrains.com/resharper/

स्टाइलकॉप - टीएफएस में चेक-इन करने से पहले अंतिम सफाई के रूप में। (नि: शुल्क)

http://code.msdn.microsoft.com/sourceanalysis


1

मुझे स्थापित कोडिंग मानकों से नफरत है, वे सभी से संबंधित हैं या तो आपको कुछ मूर्खतापूर्ण गलतियाँ नहीं करने के लिए कह रहे हैं, या आपको बता रहे हैं कि किसी तरह या किसी अन्य तरीके से अपने कोड को कैसे प्रारूपित करें। जो सभी तुच्छ हैं।

मेरा मतलब है, वे आपको बताएंगे कि आपरेटरों के बीच कितनी जगह है, अपने वैरिएबल्स को कैसे लगाएं, किस 'आयु-शैली' के उपसर्गों का उपयोग करें (उदाहरण के लिए _ सदस्यों के लिए), परस्पर विरोधी सलाह (उदाहरण के लिए, आप एक वर्ग Cxyz को कॉल नहीं कर सकते हैं लेकिन आपको अवश्य करना चाहिए) एक इंटरफ़ेस Ixyz को कॉल करें), अपने कोड को कैसे लेआउट करें (वर्ग के शीर्ष पर या नीचे पर अपना चर डालें)

बड़ी तस्वीर में सभी बेकार हैं।

इन मानकों में प्रभावी, बनाए रखने योग्य और पठनीय कोड लिखने के लिए क्या मायने रखता है।

उदाहरण के लिए: क्या आप अपने चर को अपनी कक्षा में सबसे ऊपर या सबसे नीचे रखते हैं? खैर, कौन परवाह करता है - क्या फर्क पड़ता है अगर आप अपने चर को कार्यात्मक क्षेत्र द्वारा एक साथ जोड़ते हैं। यह बात मायने रखती है (आपको यह पता चल जाएगा कि क्या आपने कभी जगह के बारे में बिखरे हुए 20 चर देखे हैं)।

वे आपको कुछ स्थानों पर अपने घुंघराले कोष्ठक लगाने के लिए कहते हैं। बड़ी बात! मैं K & R और ANSI स्टाइल ब्रैकेटिंग दोनों में कोड पढ़ सकता हूं, इससे कोई फर्क नहीं पड़ता। क्या फर्क पड़ता है अगर सभी विंडो क्लासेस को किसी भी तरह से विभेदित किया जाता है (जैसे कि फॉर्म या डीएलजी या जो भी हो) से ग्रस्त होने पर आप देख सकते हैं कि किन फाइलों में विंडो कोड होता है और जो साधारण ऑब्जेक्ट होते हैं।

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

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

संक्षेप में - वे वहाँ मदद करने के लिए हमें नहीं प्रतिबंधक नियम हमेशा इस बात का एक सेट के रूप में, एक साथ काम कर रहे हैं है उसका अनुसरण किया।


1

चेतावनी: व्यावहारिकता नीचे - सवाल "उचित" घुंघराले ब्रेस स्टाइल, आदि के बारे में बहस के लिए मुझे लगता है कि मैं उस बकवास पर समय बर्बाद करने के साथ नहीं डालता हूं।

  1. ReSharper स्थापित करें , चूक को छोड़ दें, जो कुछ भी कहते हैं वह करें।

  2. लाभ - आपकी टीम में सभी के पास एक ही शैली होगी जो Microsoft दिशानिर्देशों के करीब होगी, केवल कुछ बिंदुओं पर विचलित करना जहां Resperper मानक प्रतिबिंबित करते हैं कि वास्तव में उद्योग में अधिक व्यापक रूप से उपयोग किया जाता है और (यकीनन) सुधार हैं।

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

उस ने कहा, क्लासिक कोड कम्प्लीट का एक पाठ , उन्हें कोडिंग मानकों के पीछे के तर्क को समझने में मदद करेगा, और कोड के माध्यम से प्रभावी रूप से अर्थ बताने वाले कई महान संकेत प्रदान करता है - ऐसा कोई मानक दस्तावेज़ या निरीक्षण कार्यक्रम नहीं कर सकता है।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.