2009-10-26 2 views
3

우리는 정적 코드 분석 규칙 세트가 내장 된 VS2008을 사용하고 있습니다.
우리는 상대적으로 큰 C# 솔루션 (150 개 이상의 프로젝트)을 가지고 있고 일부 프로젝트 (< 20)는 정적으로 정적 코드 분석을 사용하고 있지만 대부분은 그렇지 않습니다. 우리는 모든 프로젝트에서 정적 코드 분석을 시행하기를 원하지만 모든 규칙을 활성화하면 현재 프로젝트에 엄청난 혼란을 야기 할 수 있습니다. 우리가 먼저 켜야 할 정적 코드 분석 규칙은 무엇입니까? 어떤 규칙이 벅에 가장 큰 영향을 미쳤습니까? 우선 순위 20 위를 정할 수 있다면 크게 감사하겠습니다.
미리 감사드립니다.
--Ed.S.정적 코드 분석 - 먼저 켜는 코드는 무엇입니까?

+2

'프로그래밍'태그가 필요 없습니다. 태그에 대한 자격이없는 질문을 여기에서 묻고 싶다면 그냥하지 마세요. :) –

답변

2

프로젝트에 대해 활성화해야하는 첫 번째 규칙은 해당 프로젝트에서 아직 위반 사항이없는 규칙입니다. 이렇게하면 추가 정리 작업을 수행하지 않고도 새로운 문제를 피할 수 있습니다.

다른 프로젝트에서 코드 분석을 이미 사용하고 있다는 점을 고려하면 심각한 결과를 초래할 가능성이 가장 큰 규칙에 대한 최상의 의견은 아마도 해당 프로젝트에서 작업하는 개발자 일 것입니다. 개발자로부터 의미있는 피드백을 얻기 위해 프로젝트간에 충분한 겹침이없는 경우 Visual Studio 2010의 Microsoft Minimum Recommended Rules 규칙 집합에 포함 된 규칙부터 시작하는 것이 좋습니다.

실제로 정리를 계획중인 경우 특정 프로젝트에서 기존 위반 사항을 수정 한 경우 정리가 완료 될 때까지 consider using FxCop instead of VS Code Analysis을 원할 수 있습니다. 이렇게하면 규칙을 즉시 활성화하고 소스 코드 외부의 기존 위반 사항을 "정리 (clean for up)"제외 상태로 유지할 수 있습니다.

0

프로젝트를 지역화하려는 경우/다른 국가에서 사용하게 될 경우 현지화 규칙을 사용하도록 설정하십시오. CultureInfo를 지정하지 않은 모든 형식/구문 분석 함수에 대한 모든 호출을 찾습니다. 특정 CultureInfo가 포함되지 않은 버그는 테스트에서 찾기가 어렵지만 프랑스 고객이 묻는 질문에 "당신의 프로그램이 작동하지 않는 이유는 무엇입니까?"

0

내 경험에 따르면 모든 유형의 코드 분석 경고는 코드에 '숨겨진'버그 또는 결함을 표시합니다. 이 문제를 해결하면 실제 문제를 해결할 수 있습니다. 나는 해제하려는 경고 목록을 찾지 못했습니다.

대신 한 번에 하나의 프로젝트에서 설정을 변경하고 다음 프로젝트로 이동하기 전에 해당 프로젝트의 모든 경고를 수정합니다.

당신이 물건을 끄고 싶다면 네이밍 규칙 (라이브러리, API 또는 다른 외부 적으로 노출 된 방법을 배송하지 않는 한)과 세계화 규칙을 확인하지 않는 것이 좋습니다. (귀하의 응용 프로그램이 세계화를 적극적으로 사용하지 않는 한). 그것은 당신의 상황에 약간의 차이가 있습니다.

2

Studio의 것들이 FxCop의 규칙과 비슷하다면 어느 것이 내가 을 켜는 지 알려줄 수 있습니다.

국제화가 시작되지 않으면 국제화 규칙을 해제하십시오.

성능 규칙을 처음에 해제하십시오. 필요할 때 최적화하십시오.

다른 사람들을 팀 및 프로젝트에 맞추십시오. 해당되지 않는 개별 규칙을 해제하십시오. 특히 명명 규칙을 조정해야 할 수 있습니다.

편집 : 가장 중요한 것은 잡음을 줄이는 것입니다. 모든 프로젝트에 200 개의 경고가 있고 그 동안 몇 달간 그대로 있으면 모든 사람들이 경고를 무시합니다. 팀에게 중요한 규칙을 설정하고 코드를 정리하여 100 % 통과 (또는 예외를 억제 - 예외가있을 것이므로 이것들은 지침입니다) 한 다음 코드를 깨끗하게 유지하십시오.

0

다소 다소 Jeroen Huinink's answer에 동의합니다.

나는 프로젝트가 따라야한다고 생각하는 모든 규칙을 설정하고 최대한 빨리 수정합니다. 이제는 모든 문제를 해결할 필요는 없지만 모듈에서 결함이나 리펙터를 수정하고 수정할 때 해당 메소드 또는 모듈의 정적 분석에서 발견 된 문제를 항상 정리할 수 있습니다. 새로운 코드는 규칙을 준수해야하며 기존 코드는 가능한 한 신속하게 준수해야하지만 모든 일을 포기할 필요는 없습니다.

개발 팀은 문제 추적 시스템에서 가장 중요한 문제를 제기하여 해당 개발자가 신속하게 해결할 수 있도록 프로젝트의 문제를 조사하고 우선 순위를 지정할 수도 있습니다.

+0

나는 왜 이것이 downvoted인지에 관해 궁금하다. 그것은 정적 분석으로 시작한 방법입니다 ... –

관련 문제