2009-04-22 5 views
2

저는 이것을 주관적이라고 생각하지 않지만 조언이나 지시 사항이있는 답변을 조금이라도 먹으면 감사하겠습니다.얼룩덜룩 한 .NET 코드베이스를 정리하고 정리하는 데 도움이되는 도구는 무엇입니까?

지난 몇 년 동안 내 직업은 개발되었고 현재 상당히 큰 응용 프로그램을 유지 관리하고 있습니다. 이 응용 프로그램은 우리 부서에서 실행 한 첫 번째 .NET 프로젝트 중 하나였으며 거의 ​​모든 개발 팀에서 커다란 학습 곡선이었습니다. 거의 모든 사람들에게 새로운 경험 이었기 때문에 추악한 코드를 내려 놓았습니다. 실제로 "일부"는 "아마도 수십만 줄"과 비슷합니다.

우리 팀은 어땠 을까? 이제 우리 팀은 어른들이 얼마나 성숙했는지, 그리고 우리는 실수를 깨닫고 있습니다. 현재 상태로 유지하는 것이 바뀌었던 비전 VB6 앱만큼 어렵습니다. 고맙게도 의사 결정자는 오류를 수정해야한다는 것을 알고 있지만 계획된 기능 향상 (업무상 필수적인 악의적 인 작업) 또는 횡단 프로젝트 중 많은 작업을 수행하는 많은 개발자와 함께 8 볼을 배후에두고 있습니다. 우리는 .NET 2.0을 사용하여 작업하는

, VS2005 (희망 2008로 마이그레이션), TFS 2005 (곧 2008 년까지 이동)

도구는 내가 검토하고 (코딩 표준을 적용 우리를 돕기 위해 사용할 수있는
  • Juval Lowy의 C# 표준 및 VB.NET 용으로 복사)

  • 잘못 설계된 구성 요소를 식별하는 데 유용한 도구는 무엇입니까?

  • 현재 번거로운 네임 스페이스를 매핑하는 데 사용할 수있는 도구는 무엇입니까?

내가 생각하기에 더 많은 질문을 던지거나 반응이 시냅스에 불을 붙일 때 확장 할 수 있습니다.

새로운 - 코드 분석을 돕기 위해 TFS와 직접적으로 관련되는 도구가 있습니까?

답변

4
  • 당신이 당신의 디자인을 통해 개요를 일반적으로 ndepend
  • 좀보고 FxCop
  • 를 사용할 수있는 resharper 같은 강력한 리팩토링 도구는 당신에게
+0

nDepend 및 ReSharper에 대한 정보를 제공해 주셔서 감사합니다. 어느 누구에게도 익숙하지 않았습니다. – STW

5

먼저해야 할 일은 적절한 단위 테스트 커버리지가 있는지 확인하는 것입니다. 이것을 가지고 있다면 앱을 리펙토링하고 다시 코딩 할 수 있습니다.

코드 표준 - FxCop 또는 비슷한 것을 보셨습니까?

StyleCop있다 - C#을 만

+0

StyleCop에 대한 정보 주셔서 감사합니다. 우리는 내장 된 FxCop 테스트가 포함 된 VS2005 팀을 보유하고 있습니다. 단위 테스트는 여기선 더러운 표현입니다. 프로젝트 리더는 "테스트 한 가지만"개념을 이해하지 못하고 단위 테스트를 추가하거나 TDD를 수행하면 추가 개발 시간이 추가되지만 시간은 절약되지만 장기 실행 - 우리의 타임 라인이 항상 오버런 (아이러니하게, 아니?) 이후 많은 믿음을 가지고 있지 않다 – STW

+0

거기에, 그것을 다시하고 싶지 않아요;) – ChrisF

+0

오 부, StyleCop은 C# 전용, 여전히 나는 개인적인 도구 벨트에 보관할 것입니다. 어쩌면 언젠가는 녹색 빛으로 C 언어의 아키텍처를 작성하게 될 것입니다. # – STW

5

ReSharper 받기하지만! 코드 표준 위반에 대한 알림을 포함하여 대단히 도움이되는 코드 정리 도구가 있습니다.

또한 변경 사항이 해당 응용 프로그램을 손상시키지 않도록 단위 테스트를 구현한다는 ChrisF의 권장 사항에 동의합니다. Resharper는 Visual Studio 내에서 단발 또는 다중 단위 테스트를 실행할 수있는 도구가 내장되어있을뿐만 아니라이 기능을 지원합니다.코딩 표준을 확인을 위해

+0

ReSharper에 대한 팁 주셔서 감사합니다. 확실히 확인하겠습니다. – STW

+0

환영. 그것은 내 코딩 실천에있어 엄청난 차이를 만들었습니다. BTW - 나는 FxCop을 가지고 있지만 ReSharper가 FxCop이 필요하지 않은만큼 충분히 사용하지 못했습니다. 아직도 나는 당신이 그것을 체크 아웃하는 것을 추천한다, 특히 ReSharper를위한 $$을 가지고 있지 않다면. –

1

ReSharper에서 도움이 될 것입니다 손을 아래로.

핫 핑크색으로 배경색을 설정하십시오.

+0

ZenBurn 컬러 테마를 사용하게되면 내 영웅이 될 것입니다. D ... 핫 핑크입니까?내 각막은 지금까지 잘 치료해 왔지만 일주일에 60 시간 씩 걸리면 그냥 죽을 수도 있습니다 :) – STW

0

VS Team System을 사용 중이며 곧 VS 2008로 마이그레이션 할 것이라고 언급 했으므로 내장 코드 분석 (FxCop) 및 코드 메트릭을 자세히 살펴보십시오. 또한 코드 메트릭에 NDepend를 사용할 수도 있습니다. 명심해야 할 것은 내장 된 코드 분석이 FxCop의 독립 실행 형 버전보다 slightly different rules을 사용한다는 것입니다. FxCop (또는 내장 된 코드 분석)은 또한 많은 "노이즈"를 생성 할 수 있으며 일부 규칙은 공개 (public) 향함 (API) 코드에서 비공개 코드보다 중요합니다.

StyleCop은 많은 "노이즈"를 생성 할 수 있지만 일부 규칙은 다른 것보다 덜 중요하지만 소스 코드 스타일 문제에는 적합합니다. (프라이빗 메소드가 public 뒤에 올 것이라고 말하는 코드 "layout"규칙과 같이) 코드 포맷과 관련해서는 일관성을 유지해야한다는 점에 유의해야한다.

현재 네임 스페이스를 매핑하려면, NDepend가 당신에게 전체적인 그림을 줄 때 더 잘할 수 있다고 생각하지만, 내장 된 클래스 다이어그램을 사용할 수 있습니다.

내가 아는 한 TFS 저장소에 대해 직접 작동하는 도구는 없습니다. 코드를 로컬에서 체크 아웃하고 도구를 실행 한 다음 다시 체크인해야합니다.

IDesign 코드 스타일 문서를보고 있다고 언급했습니다. 또한 IDesign 자료의 기반 인 Framework Design Guidelines을 살펴 봐야합니다. IDesign 가이드 라인은 훌륭하지만 모두 동의하지 않습니다.

+0

팁 주셔서 감사합니다. 나는 코드 영웅이 될 것입니다. (비록 자랑 스럽지만 내 정리와 새로운 개발 사이에서 나는 여전히 코드베이스를 줄이려고 노력하지만 다른 개발자들도 쉽게 그것을 쉽게 만들 수있다.) – STW

0

많은 사람들이 Resharper를 사용하여 일부 중복 및 일반적인 나쁜 습관을 크게 줄일 수 있다고 말합니다. 방금 중복 코드를 식별하는 데 도움이되는 다른 도구 CloneDetective을 다운로드했습니다. 함께 두 사람은 강국처럼 보입니다. 하지만 클론 형사를 아직 검토하지 않았습니다.

+0

C#처럼 보이지만 다른 목적으로는 계속 체크 아웃 할 것이다. 팁 고마워 – STW

관련 문제