문서없이 수천 줄의 코드를 읽는 방법? [닫은]

이전에는 WPF 프로젝트에 적합한 TimeLine 컨트롤을 찾고있었습니다. 여기 에서 CodePlex 프로젝트로 안내 하는 답변을 찾았습니다 .

이제 문화 요구에 맞게 코드를 변경하고 싶습니다. 그러나 약간의 불일치가 있습니다!

내 질문은 :

수천 줄의 코드와 어떻게 상호 작용합니까?

편집하다:

어떤 지름길도 훌륭합니다!



답변

그렇게 할 수있을만큼 충분히 이해했으면 소스 코드에 주석을 추가합니다. 점점 더 많이 이해할수록 이러한 의견을 적극적으로 리팩토링하십시오.


답변

  1. 코드 단계별
  2. 필요에 따라 이름을 바꿉니다
  3. 필요에 따라 리팩터링
  4. 완전히 이해할 때까지 반복하십시오

… 그리고 코드는 고맙습니다. 😉


답변

단일 조치를 취하고 코드를 디버그 (다시 반복)하여 해당 조치가 수행되는 방법을 찾으십시오. 더 나은 이해를 위해 간단한 언어로 같은 것을 쓰십시오!


답변

Joel Spolsky가 블로그에서 기사를 찾지 못했을 때 (지금 기사를 찾을 수 없음) 실제로이 문제와 관련하여 나와 붙어있는 것 :

그는 코드가 어떻게 인간의 자연어가 아닌지, 프로그래머로서 우리는 그 코드에 대한 생각에 쉽게 빠져들 수 있고 그렇게 읽을 수 있어야한다고 말했다. 결과적으로 우리 중 많은 사람들이 새로운 코드를보고 마치 영어로 된 텍스트 블록 인 것처럼 “읽고”바로 이해할 수있을 것으로 기대합니다.

핵심은 느리고 체계적이고 과학적인 것입니다. 그리고 다른 사람들이 말했듯이 당신이가는대로 주석을 달고 리팩토링하십시오. “그냥보고 즉시 이해해야한다”는 사고 방식에 빠지지 마십시오.

아, 그래요, 난 여전히이 함정에 빠지기도합니다. “내가 아닌 내가 말한대로하십시오”그리고 그 모든 것. 🙂


답변

SE-Radio는 Dave Thomas 와이 주제에 대해 인터뷰했습니다.

이 팟 캐스트 에피소드에는 프로젝트의 ‘문화’에 참여하고 원래 주민의 생활 방식을 이해하기위한 많은 팁과 기술이 있습니다.


답변

최근 10 만 LOC 이상의 프로젝트로이 작업을 수행해야했습니다. 첫 번째 아이디어는 100,000 줄의 텍스트보다 100 또는 1000 노드의 그래프에서 패턴을 보는 것이 더 쉽다는 것입니다.

그래서 45 분을 보냈고 짧은 (<100LOC) Python 프로그램을 작성하여 필요한 것을 파싱하고 객체 관계를 그렸습니다. 정말 생성 하기 쉬운 언어 인 Graphviz 소스 를 생성했습니다. (파이썬에는 특별한 것이 없습니다 : 루비, C # 또는 커먼 리스프 (Common Lisp) 등 무엇이든 할 수 있습니다.)

다른 프로젝트에서는 사람들이 모듈 종속성, 호출 그래프, 버전 기록, 모든 종류의 작업에 Graphviz를 사용하는 것을 보았습니다. 최고의 프로그램 시각화 메타 도구.

(아마도 컴파일러를 사용 했기 때문일 수도 있지만 프로그래머가 문제에 직면했을 때 문제가 소스 코드에 프로그램에 관련된 경우를 제외하고는 항상 “프로그램 작성!”인 것 같습니다. :- )


답변

새로운 대형 코드베이스를 이해하는 거의 유일한 방법 인 디버거가 실행될 때이를 단계별로 살펴보십시오.