كيف يمكنك حل التناقض بين "StyleCop C# ستايل" و "إطار المبادئ التوجيهية تصميم C# ستايل"?

StackOverflow https://stackoverflow.com/questions/426622

سؤال

بعد الذهاب من خلال الملحق أ ، "C# أسلوب الترميز الاتفاقيات" الكتاب العظيم "إطار المبادئ التوجيهية تصميم" (2nd edition من تشرين الثاني / نوفمبر 2008), أنا مشوشة تماما ما أسلوب الترميز هو Microsoft باستخدام داخليا / التوصية.

بلوق دخول تاريخ موجز C# ستايل المطالبات:

في الواقع ، فإن الاختلافات بين "StyleCop أسلوب" و "إطار المبادئ التوجيهية تصميم ستايل" طفيفة نسبيا

كما أرى ، اختلافات واضحة تماما.StyleCop يقول فتح قوس يجب أن تكون على سطر منفصل ، إطار المبادئ التوجيهية تصميم أقول ينبغي أن يكون بعد فتح البيان.StyleCop يقول جميع الكلمات الرئيسية التي يمكن أن يتبعها الفضاء إطار المبادئ التوجيهية تصميم أقول 'التخلص من جميع المساحات' (حتى حول ثنائي المشغلين).

أجد هذه القاعدة من إطار المبادئ التوجيهية تصميم الكتاب وخاصة السخرية (الصفحة 366 حكم 6 من أعلى):

لا استخدام المساحات قبل التحكم في تدفق البيانات

Right: while(x==y)
Wrong: while (x == y)

هذا هو explicitely مشيرا إلى أن StyleCop نمط الخطأ (الفضاء بعد حين كلمات مسافات قبل وبعد المساواة الثنائية المشغل).

في النهاية رمز تنسيق باستخدام StyleCop أسلوب مختلف تماما "يشعر" من تنسيقه باستخدام إطار المبادئ التوجيهية تصميم نمط.باتباع إطار المبادئ التوجيهية تصميم نمط واحد من شأنه تعطيل مجموعة من القواعد (وليس هناك أي القواعد التي تحقق الالتزام إطار المبادئ التوجيهية تصميم ستايل...).

يمكن أن أحدهم (MSFT المطلعين ربما؟) إلقاء بعض الضوء على هذا الاختلاف ؟

كيف هو فريقك التعامل مع هذا ؟ بعد StyleCop?تصميم إطار المبادئ التوجيهية ؟ تجاهل أسلوب تماما ؟ الخبز طريقتك الخاصة ؟

هل كانت مفيدة؟

المحلول

على مدونة قرأت عن هذا (أنا لا يمكن أن يبدو للعثور على عنوان url) وقيل:إطار المبادئ التوجيهية القائمة على وتطورت من C++ guideliness (هم جميع محنك C++ المطورين) في حين أن المبادئ التوجيهية stylecop يوفر أكثر عصرية جديدة C# فقط guideliness...كلاهما بخير اتخاذ قرار نفسك...وأنا شخصيا استخدام StyleCop منها

نصائح أخرى

هذه المادة من قبل stylecop فريق يفسر بالضبط ما تطلبه أعتقد.http://blogs.msdn.com/sourceanalysis/archive/2008/05/25/a-difference-of-style.aspx

و الإجابة على الجزء الثاني من السؤال الخاص بك, لدينا فريق بدأت للتو باستخدام StyleCop باستخدام جميع القواعد (بعض الناس انتقاء واختيار أي منها لاستخدامها).الشيء الوحيد الذي لا يعجبني هو الوقت الإضافي المستغرق ، ولكن باستخدام أداة مثل StyleCopForResharper يجعلها أسرع بكثير.كنت حقا منزعجا عندما كتب الناس البرمجية التي تبدو بشكل مختلف مما كنت قد كتبت ، ولكن الآن أن نستخدم StyleCop الجميع البرمجية تبدو متطابقة.لا مزيد من عض الشفاه الخاص بك عن الأشياء المزعجة الناس

نحن نستخدم StyleCop كل رمز ، وبصرف النظر عن عدد قليل طفيفة يسفسف معظم المعايير أشعر يؤدي إلى الأكثر رمز للقراءة.الكثير من المعايير قد نوقش بشكل كبير داخل مايكروسوفت ، وكان لها ردود فعل من المجتمع ، وعلى الرغم من أنه ليس من المتوقع أن الجميع سوف أتفق مع كل شيء, انها على الارجح أفضل 'معيار' هناك (خاصة كما أنه يسمح التحقق من صحة التلقائي, التلقائي تصحيح مع StyleCop على ReSharper المساعد).

إذا كان هناك أي الأشياء التي نختلف بقوة مع جيسون Allor الذي يحافظ على أداة مفتوحة تماما إلى اقتراحات حول أشياء معينة ، على سبيل المثال مع لصناعة السيارات في خصائص StyleCop أصلا أصر على...

public int Prop
{
    get;
    set;
}

لكن رفعنا طلب تغيير السماح خط واحد خصائص (أيكل شيء في سطر واحد) كما انها لا تقل للقراءة يأخذ مساحة أقل.لقد جعل هذا التغيير في غضون أيام قليلة.

اتخاذ قرار.إذا كنت مثل بعض أجزاء من بعض أجزاء أخرى من الكتابة الخاصة بك على غرار دليل.إذا كنت تحب واحد أفضل من الآخر ، استلامه.

الشيء الأساسي القيام به هو اختيار نمط ؛ ليس هناك طريقة لتقييم أحد على آخر في أي دقيق الطريقة الكمية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top