Stylecop แทนที่ FXcop หรือไม่? เราควรใช้ผลิตภัณฑ์ใดกับ Visual Studio 2008
Stylecop แทนที่ FXcop หรือไม่? เราควรใช้ผลิตภัณฑ์ใดกับ Visual Studio 2008
คำตอบ:
Stylecop เป็นเครื่องมือวิเคราะห์สไตล์ที่ทำงานในระดับซอร์สโค้ด โดยหลักแล้วมีไว้เพื่อจัดเตรียมรูปแบบทั่วไปเดียวที่โครงการที่มีการจัดการสามารถใช้เพื่อให้สอดคล้องกันภายในโลกที่ใหญ่ขึ้นของซอฟต์แวร์ที่มีการจัดการ การตัดสินใจเกี่ยวกับสไตล์เป็นหลักเพื่อหลีกเลี่ยงสงครามศักดิ์สิทธิ์ (ท้ายที่สุดแล้วสไตล์มักเป็นเรื่องส่วนตัวโดยเนื้อแท้) ฉันไม่คิดว่าฉันเคยพบใครบางคนที่ชอบทั้งหมดของกฎ StyleCop แต่ที่ตกลง หมายความว่า StyleCop เป็นการประนีประนอมที่ดีโดยทั่วไปท่ามกลางแนวทางสไตล์ที่มีอยู่มากมาย (หากกฎของ stylecop สามารถปรับแต่งได้อย่างมากนอกเหนือจากการเปิด / ปิดใช้งานเพียงอย่างเดียวก็จะทำให้วัตถุประสงค์ทั้งหมดของเครื่องมือนั้นล้มเหลว
ในทางกลับกัน FxCop เป็นเครื่องมือวิเคราะห์แบบคงที่ซึ่งทำงานในระดับของชุดประกอบที่มีการจัดการ สามารถกำหนดทิศทางผ่านแอตทริบิวต์เนื่องจากสามารถดูแอตทริบิวต์ขององค์ประกอบรหัสเช่น ตรวจพบปัญหาที่สามารถมองเห็นได้ในระดับ "ไบนารี" (เหมือนเดิม) เมื่อเทียบกับระดับวากยสัมพันธ์
เพื่อตอบคำถามของคุณ StyleCop ไม่ได้อยู่เหนือ FxCop และ FxCop ก็ไม่ได้บังคับใช้ stylecop เครื่องมือเหล่านี้เป็นเครื่องมือที่แตกต่างกันสองแบบโดยมีวัตถุประสงค์สองอย่างที่แตกต่างกันซึ่งทั้งสองสามารถให้ประโยชน์ที่แท้จริงสำหรับโค้ดของคุณ
(AKA ฉันวิ่งด้วยทั้งคู่ :))
ตัวอย่างสองสามข้อของสิ่งที่อาจตรวจพบเทียบกับสิ่งที่อีกฝ่ายอาจตรวจพบ:
การละเมิด StyleCop อาจรวมถึงคำเตือนที่เกี่ยวข้องกับ Whitespace, Formatting, Public method documentation ผ่าน xml-comments ลำดับของการกำหนดวิธีการภายในคลาส
การละเมิด FxCop อาจรวมถึงคำเตือนที่เกี่ยวข้องกับ: โลกาภิวัตน์การมีเพศสัมพันธ์ที่แน่นหนาความซับซ้อนของวัฏจักรการหักล้างค่าว่างที่อาจเกิดขึ้น
stylecop ทำงานกับซอร์สโค้ด C # ของคุณ fxcop ดูโค้ดที่คอมไพล์ของคุณจากภาษา. net
หรือทางเลือกที่สมบูรณ์ที่ดีที่จะFxCop / StyleCopจะใช้เครื่องมือเชิงพาณิชย์NDepend ด้วยเครื่องมือนี้สามารถเขียนกฎรหัสมากกว่า LINQ แบบสอบถาม (คือ CQLinq) คำเตือน: ฉันเป็นหนึ่งในผู้พัฒนาเครื่องมือนี้
มากกว่า200 กฎของรหัสมีการเสนอโดยค่าเริ่มต้นเหล่านี้รวมถึงการออกแบบ , สถาปัตยกรรม , คุณภาพรหัส , วิวัฒนาการรหัส , การตั้งชื่อ , รหัสตาย , การใช้งาน .NET Fx ...
CQLinq จะทุ่มเทกับกฎระเบียบของการเขียนรหัสที่สามารถตรวจสอบแล้วมีชีวิตอยู่ใน Visual Studioหรือที่สามารถรับการตรวจสอบในระหว่างการสร้างกระบวนการและการรายงานว่าในการรายงาน HTML / จาวาสคริปต์
จุดแข็งของ CQLinq เหนือ FxCop หรือ StyleCop คือเขียนกฎรหัสได้ตรงไปตรงมาและได้ผลลัพธ์ทันที มีการเสนอสิ่งอำนวยความสะดวกเพื่อเรียกดูองค์ประกอบรหัสที่ตรงกัน สิ่งนี้มีลักษณะดังนี้:
FXCop ทำการวิเคราะห์รหัสคงที่ของชุดรหัสที่มีการจัดการของคุณ คิดว่าเป็นการค้นหาปัญหาที่จะทำให้เกิดปัญหาในขณะทำงานหรือจะส่งผลต่อวิธีที่นักพัฒนาเชื่อว่าโค้ดจะทำงาน (รหัสที่ไม่สามารถเข้าถึงได้)
StyleCop วิเคราะห์โครงสร้างของโค้ดของคุณจากมุมมองข้อความ คิดว่านี่เป็นปัญหาที่จะส่งผลต่อประสบการณ์การพัฒนาและการออกแบบของคุณ (การจัดรูปแบบหลักการตั้งชื่อเอกสารประกอบ)
ทั้งสองเป็นเครื่องมือที่มีค่ามากและคุณควรใช้ทั้งสองอย่าง แต่มุ่งเน้นไปที่ปัญหาที่แตกต่างกัน
StyleCop ทำการวิเคราะห์ซอร์สโค้ดซึ่งไม่สามารถกำหนดค่าได้มากนัก มันไม่ได้ทำสิ่งเดียวกับ FxCop ซึ่งวิเคราะห์โค้ดที่คอมไพล์แล้ว
บทความวิกิพีเดียเกี่ยวกับสิ่งเหล่านี้ให้บทสรุปที่ดีของความแตกต่าง: