2012-01-25 27 views
9

Bạn có thể cho tôi biết sự khác nhau giữa các quy tắc của StyleCop và Phân tích Mã không? Nó có nên được sử dụng cùng nhau hay không?Sự khác nhau giữa StyleCop và Phân tích Mã khi nói về các quy tắc của từng loại là gì?

Cảm ơn.

+0

Phân tích mã trước đây được gọi là FxCop, câu trả lời này sẽ cung cấp cho bạn những gì bạn cần http://stackoverflow.com/questions/1884522/stylecop-vs-fxcop – madd0

+0

Phân tích mã phải được so sánh với FxCop chứ không phải StyleCop. – nawfal

Trả lời

12

Cảnh sát kiểu về cơ bản phân tích cú pháp tệp tìm kiếm sự cố định dạng và những thứ khác mà bạn có thể nghĩ là "mỹ phẩm". Phân tích mã thực sự xây dựng mã của bạn và kiểm tra thời gian chạy IL đã biên dịch cho các đặc điểm về cách nó hoạt động khi nó chạy và gắn cờ các vấn đề thời gian chạy tiềm năng.

Vì vậy, chúng được miễn phí và bạn hoàn toàn ổn khi sử dụng chúng cùng nhau.

7

Câu trả lời ngắn:

  • StyleCop: mất bạn mã nguồn như là đầu vào và kiểm tra tiềm năng vấn đề mã phong cách. Ví dụ: using chỉ thị không được sắp xếp theo thứ tự bảng chữ cái ... v.v.
  • FxCop (nay là mã phân tích): mất một biên soạn lắp ráp như là đầu vào và kiểm tra các vấn đề tiềm năng liên quan để thực thi/dll riêng của mình khi nó sẽ được thực hiện. Ví dụ: trong lớp học của bạn, bạn có một thành viên thuộc loại IDisposable không được xử lý đúng cách.

Tuy nhiên, có một số quy tắc chung cho cả hai công cụ, ví dụ: quy tắc liên quan đến quy ước đặt tên cho loại hiển thị công khai.

Dù sao, sử dụng cả hai đều là một ý tưởng hay.

7

Kiểm tra FxCop nội dung được viết. Nó hoạt động trên lắp ráp được biên dịch.

Kiểm tra StyleCop cách được viết. Nó hoạt động trên tệp nguồn được phân tích cú pháp, ngay cả khi không cố biên dịch nó.

Điều này dẫn đến tất cả sự khác biệt. Ví dụ, FxCop không thể kiểm tra thụt lề, vì chúng không có trong một assembly được biên dịch. Và StyleCop không thể thực hiện kiểm tra luồng mã vì nó không biết mã của bạn thực sự được thực thi như thế nào.

Các vấn đề liên quan