Stylecop 대 FXcop


답변:


171

Stylecop은 소스 코드 수준에서 작동하는 스타일 분석 도구입니다. 주로 관리되는 프로젝트가 더 큰 관리 소프트웨어 세계에서 일관성을 유지하는 데 사용할 수있는 단일 공통 스타일을 제공하기 위해 존재합니다. 주로 성스러운 전쟁을 피하기 위해 스타일에 관한 결정을 내립니다 (결국 스타일은 거의 항상 본질적으로 주관적인 것입니다). StyleCop의 모든 규칙을 좋아하는 사람을 만난 적이 없다고 생각하지만 괜찮습니다 . 이는 StyleCop이 존재하는 방대한 스타일 가이드 라인 중에서 일반적으로 좋은 타협점이라는 것을 의미합니다. (stylecop의 규칙이 단순히 활성화 / 비활성화하는 것 이상으로 고도로 사용자 정의 할 수 있다면 도구의 전체 목적을 무너 뜨릴 것입니다.)

반면에 FxCop은 관리되는 어셈블리 수준에서 작동하는 정적 분석 도구입니다. 예를 들어 코드 요소의 속성을 볼 수 있기 때문에 속성을 통해 방향을 지정할 수 있습니다. 구문 수준이 아닌 "이진"수준 (그대로)에서 볼 수있는 문제를 감지합니다.

귀하의 질문에 답하기 위해 StyleCop은 FxCop을 대체하지 않으며 FxCop은 stylecop을 대체하지 않습니다. 두 가지 목적을 가진 두 가지 도구로 코드에 실질적인 이점을 제공 할 수 있습니다.

(일명, 나는 둘 다 실행합니다. :))


한 사람이 감지 할 수있는 것과 다른 사람이 감지 할 수있는 것의 몇 가지 예 :

StyleCop 위반에는 다음과 관련된 경고가 포함될 수 있습니다. 공백, 서식, xml-comments를 통한 공용 메서드 문서, 클래스 내 메서드 정의 순서.

FxCop 위반에는 다음과 관련된 경고가 포함될 수 있습니다. 세계화, 긴밀한 결합, 순환 복잡도, 잠재적 널 역 참조.


1
예, 두 가지를 비교하는 이전 답변은 모든면에서 잘못되었습니다. StyleCop과 FxCop은 매우 다른 두 가지 작업을 수행하며, 각각이 코드베이스에서 제공하는 가치와이를 실행해야하는 이유를 조사 할 가치가 있습니다.
Jedidja 2010

3
모든 StyleCop 규칙이 좋은 것은 아니지만 원하지 않는 규칙은 비활성화 할 수 있습니다. 우리는 StyleCop을 사용하고 있습니다-평범한 멍청한 규칙을 비활성화 한 후 저렴한 비용으로 좋은 가치를 제공합니다 ..! 추천합니다. (우리가 언뜻보기에 싫었습니다.)
stiank81 2009

@ stiank81 : 예, 처음에는 모두 가 StyleCop을 싫어한다고 생각 합니다. 그러나 시간이 조금 지나면 이점이 실제로 확립 되고 소스의 일관성을 유지 하는 데 매우 유용한 도구 임을 입증합니다 . :)
Greg D

1
내가 찾던 위대한 대답 :)
GibboK

16

stylecop은 C # 소스 코드에서 작동합니다. fxcop은 모든 .net 언어에서 컴파일 된 코드를 확인합니다.


그렇다면 Stylecop을 사용한다면 FXCop이 어떤 가치를 더할 수 있습니까?
JL.

정말 FxCop을 사용하는 것이 좋습니다.
Andrew Rollings

적어도 지금은 더 구성 가능해질 때까지. :)
Andrew Rollings

1
stylecop이 훨씬 더 구성 가능 해지지 않을 것입니다. stylecop의 훨씬 더 중요한 기능은 스타일 위반의 자동 수정입니다.
Greg D

Resharper를 사용하여 코드가 스타일 캅 규칙을 자동으로 준수하도록합니다. 그것만으로도 구매 가격의 가치가 있습니다. 그리고 그 외에도 다른 모든 혜택을 누릴 수 있습니다.
환불 없음 반환

11

FxCop / StyleCop에 대한 대안 또는 좋은 보완 은 상용 도구 인 NDepend 를 사용하는 것 입니다. 이 도구를 사용하면 LINQ 쿼리 (즉, CQLinq)를 통해 코드 규칙을 작성할 수 있습니다 . 면책 조항 : 저는이 도구의 개발자 중 한 명입니다.

200이상의 코드 규칙 이 기본적으로 제안되며 여기에는 설계 , 아키텍처 , 코드 품질 , 코드 진화 , 명명 규칙 , 데드 코드 , .NET Fx 사용 ...

CQLinq는 Visual Studio에서 라이브확인할 수 있거나 빌드 프로세스 중에 확인하고 HTML / javascript 보고서로보고 할 수있는 코드 규칙을 작성하는 데 전념합니다 .

FxCop 또는 StyleCop에 비해 CQLinq의 강점은 코드 규칙을 작성하고 즉시 결과를 얻는 것이 간단 하다는 것입니다 . 일치하는 코드 요소를 찾아 볼 수있는 시설이 제안됩니다. 구체적으로는 다음과 같습니다.

CQLinq 코드 규칙


6

FXCop은 관리 코드 어셈블리의 정적 코드 분석을 수행합니다. 런타임에 문제를 유발하거나 개발자가 코드가 실행될 것이라고 생각하는 방식에 영향을 미치는 문제 (연결할 수없는 코드)를 찾는 것으로 생각하십시오.

StyleCop은 텍스트 관점에서 코드 구조를 분석합니다. 이를 개발 및 디자인 경험에 영향을 미치는 문제로 생각하십시오 (형식 지정, 명명 규칙, 문서).

둘 다 매우 귀중한 도구이며 둘 다 사용해야하지만 다른 문제에 초점을 맞 춥니 다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.