우리는 정적 코드 분석 규칙 세트가 내장 된 VS2008을 사용하고 있습니다.
우리는 상대적으로 큰 C# 솔루션 (150 개 이상의 프로젝트)을 가지고 있고 일부 프로젝트 (< 20)는 정적으로 정적 코드 분석을 사용하고 있지만 대부분은 그렇지 않습니다. 우리는 모든 프로젝트에서 정적 코드 분석을 시행하기를 원하지만 모든 규칙을 활성화하면 현재 프로젝트에 엄청난 혼란을 야기 할 수 있습니다. 우리가 먼저 켜야 할 정적 코드 분석 규칙은 무엇입니까? 어떤 규칙이 벅에 가장 큰 영향을 미쳤습니까? 우선 순위 20 위를 정할 수 있다면 크게 감사하겠습니다.
미리 감사드립니다.
--Ed.S.정적 코드 분석 - 먼저 켜는 코드는 무엇입니까?
답변
프로젝트에 대해 활성화해야하는 첫 번째 규칙은 해당 프로젝트에서 아직 위반 사항이없는 규칙입니다. 이렇게하면 추가 정리 작업을 수행하지 않고도 새로운 문제를 피할 수 있습니다.
다른 프로젝트에서 코드 분석을 이미 사용하고 있다는 점을 고려하면 심각한 결과를 초래할 가능성이 가장 큰 규칙에 대한 최상의 의견은 아마도 해당 프로젝트에서 작업하는 개발자 일 것입니다. 개발자로부터 의미있는 피드백을 얻기 위해 프로젝트간에 충분한 겹침이없는 경우 Visual Studio 2010의 Microsoft Minimum Recommended Rules 규칙 집합에 포함 된 규칙부터 시작하는 것이 좋습니다.
실제로 정리를 계획중인 경우 특정 프로젝트에서 기존 위반 사항을 수정 한 경우 정리가 완료 될 때까지 consider using FxCop instead of VS Code Analysis을 원할 수 있습니다. 이렇게하면 규칙을 즉시 활성화하고 소스 코드 외부의 기존 위반 사항을 "정리 (clean for up)"제외 상태로 유지할 수 있습니다.
프로젝트를 지역화하려는 경우/다른 국가에서 사용하게 될 경우 현지화 규칙을 사용하도록 설정하십시오. CultureInfo를 지정하지 않은 모든 형식/구문 분석 함수에 대한 모든 호출을 찾습니다. 특정 CultureInfo가 포함되지 않은 버그는 테스트에서 찾기가 어렵지만 프랑스 고객이 묻는 질문에 "당신의 프로그램이 작동하지 않는 이유는 무엇입니까?"
내 경험에 따르면 모든 유형의 코드 분석 경고는 코드에 '숨겨진'버그 또는 결함을 표시합니다. 이 문제를 해결하면 실제 문제를 해결할 수 있습니다. 나는 해제하려는 경고 목록을 찾지 못했습니다.
대신 한 번에 하나의 프로젝트에서 설정을 변경하고 다음 프로젝트로 이동하기 전에 해당 프로젝트의 모든 경고를 수정합니다.
당신이 물건을 끄고 싶다면 네이밍 규칙 (라이브러리, API 또는 다른 외부 적으로 노출 된 방법을 배송하지 않는 한)과 세계화 규칙을 확인하지 않는 것이 좋습니다. (귀하의 응용 프로그램이 세계화를 적극적으로 사용하지 않는 한). 그것은 당신의 상황에 약간의 차이가 있습니다.
Studio의 것들이 FxCop의 규칙과 비슷하다면 어느 것이 내가 의을 켜는 지 알려줄 수 있습니다.
국제화가 시작되지 않으면 국제화 규칙을 해제하십시오.
성능 규칙을 처음에 해제하십시오. 필요할 때 최적화하십시오.
다른 사람들을 팀 및 프로젝트에 맞추십시오. 해당되지 않는 개별 규칙을 해제하십시오. 특히 명명 규칙을 조정해야 할 수 있습니다.
편집 : 가장 중요한 것은 잡음을 줄이는 것입니다. 모든 프로젝트에 200 개의 경고가 있고 그 동안 몇 달간 그대로 있으면 모든 사람들이 경고를 무시합니다. 팀에게 중요한 규칙을 설정하고 코드를 정리하여 100 % 통과 (또는 예외를 억제 - 예외가있을 것이므로 이것들은 지침입니다) 한 다음 코드를 깨끗하게 유지하십시오.
다소 다소 Jeroen Huinink's answer에 동의합니다.
나는 프로젝트가 따라야한다고 생각하는 모든 규칙을 설정하고 최대한 빨리 수정합니다. 이제는 모든 문제를 해결할 필요는 없지만 모듈에서 결함이나 리펙터를 수정하고 수정할 때 해당 메소드 또는 모듈의 정적 분석에서 발견 된 문제를 항상 정리할 수 있습니다. 새로운 코드는 규칙을 준수해야하며 기존 코드는 가능한 한 신속하게 준수해야하지만 모든 일을 포기할 필요는 없습니다.
개발 팀은 문제 추적 시스템에서 가장 중요한 문제를 제기하여 해당 개발자가 신속하게 해결할 수 있도록 프로젝트의 문제를 조사하고 우선 순위를 지정할 수도 있습니다.
나는 왜 이것이 downvoted인지에 관해 궁금하다. 그것은 정적 분석으로 시작한 방법입니다 ... –
- 1. 정적 코드 분석 도구를 작성하는 방법은 무엇입니까?
- 2. 좋은 정적 코드 분석 플러그인은 무엇입니까?
- 3. 동적 코드 분석 도구가 포함 된 정적 코드 분석?
- 4. 리눅스에서 정적 코드 분석 도구의 비교?
- 5. TeamCity .NET 용 정적 코드 분석 도구
- 6. 어셈블리 언어에 대한 정적 코드 분석
- 7. PHP 정적 코드 분석 - 클래스 의존성 찾기
- 8. Common Lisp 용 정적 코드 분석 도구?
- 9. FxCop 또는 StyleCop의 사용자 정의 정적 코드 분석 규칙은 무엇입니까?
- 10. 64 비트 이식성 문제를 발견하는 정적 코드 분석 도구는 무엇입니까?
- 11. 단위 테스트에서 결함을 찾기위한 정적 코드 분석 도구는 무엇입니까?
- 12. cocos2d에서 스프라이트를 켜는 방법은 무엇입니까?
- 13. 소스 코드 수준에서 작동하는 C#의 정적 소스 코드 분석
- 14. 코드 분석
- 15. 코드 분석
- 16. 정적 분석 문 (조건)
- 17. CTP5 EF 코드 먼저 질문
- 18. xml 구문 분석 코드
- 19. 독점적 인 API를위한 정적 소스 코드 분석 도구 개발?
- 20. 새 언어에 대한 정적 코드 분석. 어디서 시작하나요?
- 21. VB6 및 고전 ASP에 대한 정적 코드 분석
- 22. 아직 C# 4.0 용 정적 코드 분석 도구가 있습니까?
- 23. GCC 코드 통계/분석
- 24. EF 4.1 코드 먼저 SQLCE와 DateTimeOffset으로
- 25. 먼저 DllMain() 또는 전역 정적 개체 생성자라고하는 것은 무엇입니까?
- 26. 수행 방법 ANTLR로 정적 분석
- 27. 안드로이드 에뮬레이터를 켜는 방법?
- 28. 코코아 마우스로 켜는 버튼
- 29. AWT 로깅을 켜는 방법
- 30. ActiveMQ 5.2에서 JMX를 켜는 방법
'프로그래밍'태그가 필요 없습니다. 태그에 대한 자격이없는 질문을 여기에서 묻고 싶다면 그냥하지 마세요. :) –