기존 C# winforms 응용 프로그램을 다시 작성해야합니다. 불행하게도,이 코드는 지난 3 ~ 4 년 동안 적어도 12 명의 다른 개발자가 수정 한 것으로, 누구도 겉으로는 모든 종류의 코딩 표준을 준수하지 않았습니다. 이 코드베이스가 엉망이라고 정중하게 말할 것입니다. 코드의 크기 (~ 24k 라인)와 코드가 완전히 새로운 것임을 감안할 때,이 애플리케이션이 어떻게 높은 수준에서 작동하는지 더 빨리 이해할 수있는 유용한 유틸리티를 찾고 싶습니다. 이 코드에는 훌륭한 OOP 프랙티스가 많이있는 것 같지 않으므로 클래스 다이어그램보다 좀 더 상세한 것이 필요하다는 것을 명심하십시오. 내가 찾고있는 것과 비슷할 수도있는 시퀀스 다이어그램 생성에 대한 참조를 보았지만 VS2010 Premium 만 있고이 기능은 VS Ultimate SKU와 함께 제공된다는 인상하에 있습니다. .NET Reflector의 현재 버전에 대한 액세스 권한이 있으며 몇 사람이 유용 할 수있는 플러그인이 있지만 특정 이름이 없음을 언급했습니다.C# 코드 흐름 매핑/시각화 유틸리티?
답변
이 NDepend를 살펴 보라는 코드 manageme입니다 베이스 라인 이후 code querying, code rules, smart technical debt estimation, 의존성 graph 매트릭스, code diff 당신에게 많은 감사를 도울 수 NT 도구 ... 너무
아, 그리고 this related question.
재앙이 될 수 있습니다 처음부터 코드를 다시 쓰기 :이 참조 : 당신은 전에 다스 개발자가 있었다 언급 한 바와 같이 http://www.joelonsoftware.com/articles/fog0000000069.html
이것은 쉬운 일이 아니다. 각 개발자의 뒤에는 자신의 방법론과 자신의 시스템 논리가 있습니다. 모두 은 자신의 방식대로합니다. 여기
는 개발자가 아직 주위하거나 또는 경우에도 찾기 위치 또는 악화 변경 작업- 발생할 수있는 문제의 일부입니다 기술 사양이 존재합니다 (이것이 가장 중요합니다).
- 원래 쓰여지고 패치 된 후 다시 패치 된 레거시 코드입니다 ...
- 플로우 차트의 무리를 가지고 게다가 어떤
가있는 경우 통합 또는 응용 프로그램
OOP에 대해 언급했는데 스파게티 코드를 사용하고 객체 지향 모델에 맞게 전체 재 작성을 수행 할 계획입니까? 그렇다면 그것은 많은 작업입니다 ... 그리고 그것에 일하는 12 이전의 두뇌로 누군가의 논리는 당신을 위로 여행 할 의무가 있습니다.
죄송합니다. 최선의 조언이 없지만 이것은 어려운 작업 일 수 있습니다 ... 특히 개발자가 더 이상 존재하지 않는 경우 특히 그렇습니다.
더 많은 정보를 원하시면이 SO 스레드를 참조하십시오 :
안녕하세요. Jon. 빠른 답장을 보내 주셔서 감사합니다. 당신은 많은 좋은 점을 만듭니다. 불행하게도 이것은 "이것이 우리가 할 일"이라고 말한 상황 중 하나입니다. 사실 저는 고용주에게 이와 비슷한 주장을 제기했지만, 재 작성이 필요하다고 결정했으며이를 수행하기 위해 최선을 다하고 있습니다. :-( – user685869
(개인적으로 나는 그것들을 즐긴다 : D) 재 작성해야한다면 새로운 버전에서 쓸 유용한 조각을 새로운 프로젝트로 복사하고 단위 테스트를 작성하는 기능을 분리 해 볼 수있다. 새로운 GUI 응용 프로그램 작성하기 Update Control - http://loyc-etc.blogspot.com/2011/04/update-controls.html을 배우는 것이 좋습니다. 일단 알아 내면 개발이 가속화 될 것입니다. – Qwertie
전체가 유효하지는 않지만 기존 코드의 일부가 완벽하게 훌륭하다는 것을 확신합니다. 나는 당신이 그 부분을 가지고 그들 주위에 단위 테스트를하고 헐떡 거림를 복사하여 새로운 프로젝트에 붙여 넣는 것이 좋습니다. 그런 식으로, 당신은 조금씩 당신의 엉망진창을 재구성하고 시험해 보게 될 것입니다.
또한 내가 항상하고 싶었던 것은 많은 코드를 인쇄하고 (실제 금속 scisors로) 잘라내어 그들이 사용되는 방법을 다시 테이프로 묶어 워크 플로를 시각화하는 것입니다.
- 1. 코드 흐름 시각화 소프트웨어
- 2. C++ 용 성능 테스트 유틸리티
- 3. 흐름 C 파서
- 4. asp.net C# 코드 중복 검색 응용 프로그램 - 유틸리티
- 5. .NET LDAP 경로 유틸리티 (C#)
- 6. C# 일반 직렬화 유틸리티 클래스
- 7. 파이썬이나 배시에서 코드 라인 수를 계산하는 유틸리티
- 8. 코어 데이터 유틸리티 튜토리얼 - 샘플 코드
- 9. 국가 코드 받기 - 서비스 또는 유틸리티 방법?
- 10. C++의 제어 흐름 구문
- 11. C++ 프로그램의 데이터 흐름 분석
- 12. Windows 플랫폼 용 C/C++ call-graph 유틸리티
- 13. 유틸리티 (Perl)
- 14. iPhone 유틸리티 앱 디자인
- 15. C# 주기적으로 오래된 파일을 삭제하는 유틸리티
- 16. C# 및 T-SQL 명령 줄 유틸리티
- 17. C# 프로젝트 도우미 또는 유틸리티 클래스 구성
- 18. PHP 수준의 고급 C 유틸리티 라이브러리
- 19. 크로스 플랫폼 C++ 명령 행 유틸리티
- 20. C# 조건부 및 포함 논리 흐름 구조
- 21. C# - 프로그램 실행 흐름 yield/pause/resume
- 22. Parasoft C++ 테스트에서 혼란스러운 제어 흐름 분석
- 23. C# 응용 프로그램 제어 흐름 결정
- 24. 흐름 기반 라우팅 및 개방형 흐름
- 25. JIT를 끄고 MSIL에서 코드 흐름 제어 (자체 VM)
- 26. Javascript 3D Graphing 유틸리티?
- 27. asp.net 유틸리티?
- 28. BCP 유틸리티
- 29. beamer 유틸리티?
- 30. Java to AIDL 유틸리티
주어진 작업에 어떤 코드가 관련되어 있는지 알아 보려면 PartCover 나 (더 나은) 상용 대안 같은 코드 적용 도구를 사용하십시오. 그것은 종종 나를 이해하는 데 도움이됩니다. 그러나 나는 이것을 실제로하는 방법을 기억하지 않기 때문에 답변으로 게시하지는 않습니다. – Qwertie