2010-05-05 4 views
3

최근 큰 코드베이스를 상속 받았으며 읽어야합니다. 문제는, 보통 프로젝트를 시작한 개발자였습니다. 결과적으로 코드를 읽는 데 경험이 많지 않습니다.코드를 더 잘 읽는 법을 배우기위한 자료

많은 코드를 읽어야하는 나의 반응은 글쎄, 재 작성하는 것입니다. 그러나 나 자신을 불러 와서 신속하게 기존 시스템을 기반으로 구축해야합니다.

다른 사람들이 코드 기반을 흡수하는 방법을 배웠습니까? 이 시점에서 나는 코드를 읽는 중이다. UModel을 사용하여 UML 다이어그램을 생성 해 보았습니다. 그들은 너무 커야 깨끗하게 인쇄하지 않을 것이고 확대 할 때 나는 모든 관계를 보는 관점을 정말로 잃어 버리게됩니다.

다른 사람들이이 문제를 어떻게 처리합니까?

답변

1

와우 - 나는 문자 그대로 방금 독서 코드로 팟 캐스트를 듣는 것을 끝냈다!

http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/01/pluralcast-10-reading-code-with-alan-stevens.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29

나는이 듣고 추천 할 것입니다. 내가 급진적 인 것을 발견했고 당신이 시도 할 수있는 뭔가일지도 모르는 재미있는 한 점이 있습니다 (나는 내가 가고 있다는 것을 알고 있습니다!). 전체 소스 코드 기반을 다운로드하십시오. 편집 및 리팩토링을 시작한 다음 해당 버전을 버리십시오 !!! 나는이 일을하는 데 드는 마감 시간에 대한 모든 요구가 대부분의 개발자들에게 일어나지 않을 것이라고 생각합니다.

나는 내 자신의 작업에서 당신과 비슷한 위치에 있으며 다음과 같은 사실이 발견되었습니다. - 기존 코드에 테스트 사례를 작성하십시오. 테스트 케이스를 작성하려면 cde 기반을 이해할 수 있어야합니다. - 사용 가능한 경우 제품 수명주기 동안 문서화 된 버그 및 문제 해결 방법을 확인하십시오. - 코드의 일부를 리팩터링하고 리팩토링하십시오. 아마도 문제가 발생할 수 있지만, 버리거나 다시 시작할 수는 있습니다. 코드를 더 작은 문제로 분해하면 더 잘 이해할 수 있습니다.

리팩토링 할 때 크게 변경하지 않아도됩니다. 코드를 읽고 이해할 때 변수 또는 메서드 이름의 이름을 변경하면 문제를 해결할 수 있습니다.

오신 것을 환영합니다. 마이클 C. 페더스 (Michael C. Feathers)의 레거시 코드로 효과적으로 작업하십시오. 귀하의 상황에서 매우 귀중한 도움이 될 것입니다.

행운을 빈다.

+0

이 포드 캐스트는 정말 내 제안 imho와 비교해 sux입니다. 실제 소스 코드 관행보다는 문학에 관한 것이기 때문에 매우 애매합니다. –

+0

나는 SE 라디오의 열렬한 팬이다. 그러나 나는 teckie 포드 캐스트를 듣는 대부분의 사람들이 그것을 지금 알고 있고 정기적으로 듣고 있다고 생각한다. - 나는이 포드 캐스트를 최근에 보았고 그래서 나는 내가 공유 할 것이라고 생각했다. –

0

일반적으로 나는 코드 (main 함수, plugin hook 등)의 진입 점에서 시작하여 기본적인 실행 흐름을 거친다. 괜찮은 코드 기반이라면 괜찮은 크기의 덩어리로 분해되어야하며 코드의 각 덩어리가 무엇을 책임지고 있는지 파악할 수 있습니다. 시스템의 실행 흐름이 호출 될 때 다시 살펴 봅니다.

패키지/모듈/클래스 탐색의 경우 소스를 통해 실행 된 doxygen이 생성되면 사용합니다. 그것은 좋은 클래스 관계 다이어그램, 상속 계층 및 파일 종속성 그래프를 생성합니다. 이것들의 이점은 각각 하나의 클래스에 초점을 맞추고 그것이 이웃, 형제 및 부모와 어떻게 연관되어 있는지를 보여주는 것입니다. 따라서 그래프는 일반적으로 관리하기 쉬운 크기로 이해하기 쉽습니다.

다른 클래스, 함수 및 하위 시스템을 이해함에 따라 분명히 설명서가 누락 된 것처럼 보이는 것을 채우기 위해 의견을 추가하고 싶습니다. 이 코드는 두 번째로 코드를 다시 읽을 때 도움이됩니다.

0

This article는 가이드 라인을

  • 시각화를 제공합니다.

  • 디자인 위반 : 개체의 상태에 대한 이해 모델.

  • 스타일 위반 :. 기존의 소스를 테스트 할 수있는 기능 : 코드가

  • 비즈니스 로직 검토 현재 국가의 이해.

  • 성능 검토 : 소스 코드의 병목 현상은 어디에 있습니까?

  • 문서 : 코드에는 사람들이 작업중인 내용을 이해하는 데 적합한 설명서가 있습니까?

관련 문제