2009-06-29 4 views
8


기존의 C++ 프로젝트의 코드를 100k 줄 이상으로 개선해야합니다.
제 질문은 어떻게 그런 프로젝트로 시작해야할까요?
코드가 잘 문서화되어 있지 않으면 문제가 더 커집니다. 대규모 프로젝트에서 코드 흐름을 연구하기위한 자동화 도구가 있습니까?
큰 프로젝트에서 수정을 시작하는 방법

고맙습니다,

답변

13

당신을위한 책이있다 : Working Effectively with Legacy Code

그것은 도구에 대해 아니지만, 다양한 접근 방법, 프로세스 및 기술에 대해 당신은 더 나은 코드를 변경을 이해하고 만들 수 있습니다. 대부분 C++ 관점에서 작성된 것입니다.

+2

+1, 테스트의 상태가 중요합니다. 깃털 (Feathers)이 추천하는 책의 저자로서, 그렇게 효과적으로 지적하고 있습니다. –

16

를 사용하여 소스 제어 당신은 아무것도를 만지기 전에!

+0

그래, 그게 중요하다. 그래서 +1 @ nader의 답변은 더욱 화제 다. 그래서 나는 그것도 upvoted했다 ;-). –

2

EXTRACT_ALL 태그가있는 Doxygen 태그를 실행하면 코드 기반의 모든 관계가 문서화됩니다. 코드 흐름에 도움이되지는 않지만 전체 응용 프로그램의 구조와 디자인과 관련하여 도움이 될 것으로 기대됩니다.

3
  • 먼저 기존 인터페이스를 잘 조사하십시오.
  • 테스트가 없으면 테스트를 작성하거나 이미 작성한 테스트를 확장하십시오.
  • 소스 코드를 수정하십시오.
  • 테스트를 실행하여 수정으로 인해 이전 동작이 중단되는지 확인합니다.
2

PC에서 코드를 실행할 수있는 경우 일반적으로 프로파일 링 출력에서 ​​콜 그래프를 만들 수 있습니다.

cscope, ctags, lxr 등과 같은 도구를 교차 참조하는 것도 도움이 될 수 있습니다. A

코드 다이어그램을 작성하거나 주석을 추가하는 데 약간의 시간을 할애하여 코드베이스에 익숙해지고이를 수정/연장하기위한 단계를 거쳐야합니다.

3

객체 지향 리엔지니어링에 대한 그물에 현재 무료로 사용할 또 다른 좋은 책,이 : http://www.iam.unibe.ch/~scg/OORP/

+0

질문 제목을 읽을 때 즉시이 책에 대해 언급하고 싶습니다. +10에서 zim2001. – DaveFar

3

디오 미 디스 스피넬리스에 의해 책 "Code Reading" 큰에 대한 개요와 깊이있는 지식을 습득하는 방법에 대한 조언을 많이 포함은 , 알 수없는 프로젝트.

6 장은 그 주제 (Tacking Large Projects)에 대해 자세히 다루고 있습니다. 또한 툴링 (9 장)과 아키텍처 (8 장)에 대한 장에는 좋은 힌트가 포함되어있을 수 있습니다.

그러나이 책은 "코드"를 (읽음으로써) 이해하고 있습니다. 그것은 유지 단계를 직접 다루지 않습니다.

2

먼저해야 할 일은 코드 작동 방식을 이해하는 것입니다. 어떤 문서가 있는지 읽은 다음 디버거에서 작동하는 프로그램을 봅니다. 주 기능/루프를보고 느리게 프로그램 깊숙이 작업하면, 어떻게 작동하는지 알 수 있습니다. 당신이 발견 한 것을 적어 두어 다른 사람들이 당신이 시작할 수있는 더 좋은 위치를 찾은 후에 따르도록하십시오.

1

아주 좋은 오스트리아 프로그래머는 프로그램을 이해하기 위해서는 먼저 프로그램에서 사용하는 데이터 구조를 이해해야한다고 말했습니다.

3

먼저해야 할 일은 입니다.

이 크기의 제품은 요구 사항없이 개발 될 가능성이 거의 없습니다.

  • 어떤 제품의 감각 (따라서 코드)를 얻을
  • 가 얼마나 볼 일을 할 예정 적어도 된다에 요구 사항을 숙독함으로써

    , 당신은 할 수 있습니다 잘 (또는 제대로) 코드는 실제로 이러한 요구 사항을 충족

  • 그렇지 않으면

그냥 개발자의 의도를 신성하려고, 코드를 찾고 ...

관련 문제