문제

  • 당신이 사용하여 소스 코드 해석기는?그렇다면,어떤 것들과는 언어 발달?
  • 당신은 그들을 찾을 해결에 도움이 잠재적 버그에서 당신의 코드?또는 그들의 대부분의 경고 사소한가?
  • 장시간 사용 후에,당신은 당신의 코드 품질을 이전보다 더 높은?
도움이 되었습니까?

해결책

Java에서 몇 가지 정적 분석 도구를 사용합니다. FindBugs 첫 번째 방어선은 많은 일반적인 오류를 포착하고 매우 유용한 피드백을 제공합니다. 피곤한 프로그래머의 바보 같은 실수를 발견하고 사용자에게 큰 부담을주지 않습니다.

PMD 다른 많은 멍청한 버그에 적합하지만 훨씬 더 많은 구성이 필요합니다. PMDS 기본값이 종종 맨 위에 있음을 알 수 있습니다. 작은 규모로 유익한 규칙이 너무 많지만 궁극적으로 다른 프로그래머가 코드를 유지하는 데 도움이되지 않습니다. PMD 규칙 중 일부는 종종 조기 최적화가 발생합니다.

아마도 더 유용한 것입니다 CPD PMD 지원. 리팩토링을 훨씬 쉽게하기 위해 다른 곳에서 복제 된 코드를 찾으려고 시도합니다. 전체 프로젝트를 수행하면 코드를 정리하고 건조 위반을 중지하기위한 가장 큰 우선 순위가 어디에 있는지 결정하는 데 도움이됩니다.

체크 스타일 또한 코더가 일부 코딩 스타일 표준을 준수하는지 확인하십시오. PMD와 약간의 겹치지 만 일반적으로 훨씬 더 유용합니다.

드디어, 코베르 투라 훌륭한 테스트 커버리지 제품군입니다. 단위 테스트가 부족한 곳과 새로운 테스트 생성의 우선 순위를 정하는 곳을 찾는 데 매우 편리합니다.

아, 그리고 나는 또한 테스트를 해왔다 광대. 코드에 약간의 커버리지가있는 경우에도 테스트에서 구멍을 찾는 데 꽤 좋은 것 같습니다. 아직 사용하지 않았기 때문에 아직 권장하지는 않지만 테스트 할 수 있습니다.

나는 이클립스 내에서 그리고 자동화 된 빌드 스위트의 일부로이 도구를 실행합니다.

다른 팁

C의 경우 사용합니다 Memwatch. 사용하기 쉽고 무료입니다.

과거에는 많은 메모리 버그를 찾는 데 사용했습니다.

나는 Resharper와 MS TS (기본적으로 fxcop)를 사용했으며, 둘 다 특히 다음 분야에서 매우 유용합니다.

  • 죽은 코드 식별
  • 넓은 범위
  • 성과 개선 (세계화 등)

권장 사항은 항상 위대하지는 않지만 일반적으로 코드의 품질을 향상시킵니다.

나는 오랜 기간 사용자의 PC-Lint C 및 C++을 찾아 그것은 매우 유용합니다.이러한 도구들은 대부분할 때 유용합 복용하는 코드 기반을 unfamilier 니다.시간에 당신의 율법이익 감소,수의 새로 버그를 발견하는 경향이 흔적이다.

나는 항상 여전히 전체 프로젝트를 보풀에 놓습니다.

편집:이 있는 목록의 관련 도구 Wikipedia

나는 꽤 행복하다 resharper. 코딩하는 동안 유용한 정보를 제공 할뿐만 아니라 (예 : 불필요한 캐스트, Readonly 등을 적용) 리팩토링 기능은 코드를 매우 빨리 재배치하는 데 적합합니다.

모든 것을 다루지 않으므로 FXCOP (또는 이와 유사한)는 도구 상자에 알맞은 추가 기능입니다. 그러나 Resharper가 즉각적인 피드백을 제공하므로 처리 시간은 정말 좋습니다. (FXCOP가 VS에서 실행될 수 있지만 동일한 IMO는 아닙니다).

분석기는 다소 유용하다고 생각합니다. Buildin to Visual Studio (예 : C /C ++ 및 .NET 용 사용자 정의 규칙에 대한 분석)를 사용합니다. 때로는 사용합니다. 스타일 콥 그리고 Codeitright C#의 경우 대부분 가이드 라인의 경우 상황이 어떻게 해야하는지.

나는 모든 버그를 찾는 완벽한 도구가 있다고 생각하지 않지만, 도구는 추적 할 수없는 버그를 찾는 데 도움이된다고 생각하지만, 당신은 그들을 찾는 데 많은 시간을 할애 할 것이라고 믿습니다.

예, 코드 품질은 이전보다 다소 낫지 만 수동 디버깅도 여전히 필요하다고 생각합니다. 소스 분석기는 최고의 치료법이 아닙니다. 도구를 실행하고 도구를 실행하고 어떤 종류의 버그를 찾아서 수정하는 데 수백만 달러가 소요될 수 있습니다.

내가 알고있는 일부 프로그래머는 IBM Ratory PurifyPlus가 훌륭하다고 맹세하지만, 이는 도구와 2-3 세션을 가졌습니다.

그러나 프로그래밍의 기본 원칙 중 하나는 논리적 오류를 찾기에 가장 어렵다는 것을 기억하십시오. 따라서 긴 디버깅 시간은 불가피합니다. 단위 테스트와 결합 된 우수한 코드 분석기는 기적이 생각할 수 있습니다.

추신. 나는 C ++보다 C#에서 훨씬 적은 오류를 생성하는 경향이 있습니다. 누군가가 내가 틀렸다고 말할 수도 있지만 C#보다 C ++를 사용하지만 "코드를 찾으면 C#을 처리 할 것"GC 접근법은 C ++보다 훨씬 쉽습니다. 특히 프로젝트의 경우 시간 제한/마감일에 마무리해야 할 일이 있습니다.

나는 사용한다 스타일 콥 C#의 경우. 코드 품질이 향상되는 일관된 코드 스타일을 유지하는 훌륭한 도구입니다. 또한 resharper 일부 코드 분석을 수행하지만 매우 기본적입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top