도구 지원을 통해 .NET에서 단일 코딩 표준을 보장하는 방법


14

아마도 기본 상황은 모든 사람에게 친숙 할 것입니다. 팀의 특정 코딩 표준에 동의했으며 이제는 모든 사람이 표준을 따르도록해야합니다.

일부는 무거운 쌍을 이루는 프로그래밍을 통해 수행하고 다른 일부는 코딩 표준 목록을 유지 관리하고 수동 검토를 수행합니다. 다른 사람들은 Visual Studio의 정적 코드 분석 도구를 사용하여 코딩 표준이 적용되도록합니다.

코딩 표준을 보장하기위한 모범 사례는 무엇입니까? 어떤 도구를 사용하십니까? 모든 개발자가 알아야 할 필수 도구가 있습니까? 개발 도구에서 코드 표준화를 어떻게 통합합니까?

답변:


15

StyleCop (이제 StyleCop for Resharper)은 일반적으로 C # 코드 기반 내에서 코딩 스타일 규칙을 적용하는 데 사용됩니다.

CI 빌드에 통합 될 수 있으며 위반이 발생한 경우 빌드 실패를 일으킬 수 있습니다.


그것을 사용하는 방법에 대한 더 많은 정보가 있습니까? 각 커밋 전에 스타일 검사를 실행하고 싶습니다. 그래서 나는 그것을 위해 cli가 필요합니다. 있어요. 관련 정보를 찾을 수 없습니다.
FreeLightman

1
도움이 될 수 있습니다 blog.submain.com/stylecop-detailed-guide
z-boss

@아르 자형. -하나만 StyleCop 규칙을 사용자 정의 할 수있는 경우. 아, 잠깐만 요
Oded

@아르 자형. -당신은 또한 자신의 규칙을 작성할 수 있습니다.
Oded

FWIW는 github의 readme에서 : "풀 요청이 계속 받아 들여질 것이지만,이 프로젝트에서 큰 발전이 이루어질 것 같지는 않습니다. StyleCop에서 사용하는 사용자 지정 C # 파서를 유지하는 것이 점점 어려워지고 비효율적입니다."
녹슨

6

먼저 코드를 지속적으로 빌드하는 적절한 빌드 서버가 있는지 확인하십시오. TFS 또는 Jenkins / Hudson + Msbuild가 좋은 옵션입니다. 이 빌드 서버에서는 물론 테스트를 실행하고 구문 검사기뿐만 아니라 정적 코드 분석도 실행할 수 있습니다.

정적 코드 분석에는 FxCop 또는 Gendarme 을 사용하는 것이 좋습니다 . 둘 다 나란히 사용할 수 있습니다.

성공의 중요한 열쇠 : 대규모 규칙 세트를 사용하여 배포하지 말고 제대로 작동 할 것으로 기대하십시오. 당신은 수백만의 경고를받을 것이며 아무도 걱정하지 않을 것입니다.

경험상 규칙은 다음과 같습니다.

  • 항상 경고가 없습니다. 필요한 경우 처음에 점검 세트를 줄인 다음 스프린트마다 새로운 점검을 추가하고 수정하십시오. 수행 된 모든 점검이 귀하에게 실질적인 가치를 지니고 표준과 일치하는지 확인하십시오.

  • 준수해야 할 도메인 별 규칙이있는 경우 자체 규칙을 구현하는 것을 두려워하지 마십시오.

구문 검사를 위해 Resharper를 사용하는 경우 StyleCop 또는 Resharper 용 StyleCop을 사용하십시오.


2

StyleCop과 FxCop 은 개발자에게 코드 스타일을 상기시키는 경량 도구입니다. Resharper도 좋은 것이지만 VS를 매우 느리게 만듭니다.

훌륭한 문서, 분류, 예제 및 기타 많은 기능을 갖춘 풍부한 규칙 라이브러리로 인해 FxCop을 권장 합니다.

Visual Studio 용 StyleCop Fixer 확장 프로그램 도 있으며 일반적인 실수를 수정하는 데 도움이됩니다.

코드 메트릭은 때때로 코드 스타일의 영향을받습니다. 이 도구를 사용하여 코드 유지 관리 성을 모니터링 할 수 있습니다.


2

수동 검토보다 이미 언급 한 자동 코드 분석 (FxCop, StyleCopy, CI 빌드 등)이 먼저 작동하도록 강조하고 싶습니다. 자동 검사는 수동 검토보다 훨씬 더 많은 정보를 수집하며 일반적으로 훨씬 더 엄격하고 일관되며 자체 문서화됩니다. 수동 검토는 더 높은 수준의 디자인 결정 등에 유용 할 수 있지만 내 경험상 매우 주관적이고 우연한 것일 수 있습니다.


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