2010-07-19 5 views
7

대략적인 크기 200K LOC의 C# 코드베이스에 대해 가장 잘 알고있는 방법은 무엇입니까? 사용할 수있는 도구가 있습니까?코드 이해

http://www.program-comprehension.org/이 목적을 위해 오랫동안 진행되는 이벤트가있는 것 같습니다.

감사합니다.

답변

7

CodeCity에는 코드베이스에 대한 정말 멋진 시각화가 있습니다. 그것은 많은 감각을 만드는 도시의 은유를 사용하고 코드 강조를 유용하게 사용합니다.

ndepend.com 개요에 매우 좋습니다.

Atomiq에는 복제를위한 훌륭한 시각화가 있습니다. 그것은 코드베이스를 파싱하고 휠을 통해 시각화합니다. 여기서 복제본은 바퀴에서 스포크로 표시되며 각각 위에 마우스를 가져 가면 나란히 비교할 수 있습니다.

Nitriq에는 품질 제약을 적용하는 멋진 LinqToCode 종류가 있습니다. 이러한 규칙은 빌드 프로세스의 일부로 명령 줄에서 실행할 수 있습니다.

ReSharper's 탐색 기능은 무엇을 사용하는지 파악하는 데 매우 중요합니다. Find-Usages는 대단히 유용합니다. 코드베이스를 탐색하기 위해 Alt + F7은 실행 한 쿼리의 내역을 계속 열어두고 있기 때문에 친구와 대화 할 수 있으므로 장소를 유지하기 위해 앞뒤로 이동할 수 있습니다.

Visual Studio는 커서 위치/편집 점을 기록하고 ctrl + - 및 ctrl + shift + -를 사용하여 커서를 앞뒤로 이동합니다.

ReSharper의 TODO 탐색기를 사용하여 일반적인 주석 (예 : // 참고 : blah)을 결정한 후 주석 (및 정의 할 수있는 다른 패턴)을 모두 찾은 다음 탐색 할 수 있습니다 그들에게. 우리는 현재 코드 리뷰를 위해이를 사용합니다.

Visual Studio (최소한 Professional Edition)는 클래스 다이어그램을 생성 할 수 있습니다. 파일을 여러 개 선택하고 마우스 오른쪽 단추로 클릭 한 다음 클래스 다이어그램을 만듭니다. 나는 이들을 코드베이스와 최신으로 유지하기위한 유물과는 달리 낙서로 더 유용하다고 본다. 상속을 알려주지 만, 인터페이스를 매우 명확하게 표시하지 않으며, 수집 물 또는 작곡가를 표시하려고 시도조차하지 않습니다.

+0

+1 답변에 더 많은 정보를 추가해야합니다. – Henrik

+0

+1 for NDepend; 각 레벨 (어셈블리, 클래스, 메서드 또는 모든 조합)에서 구조를 보여줍니다. –

+0

@Henrik 더 나은 정보를 얻으려면 내 대답에 정보를 추가하는 방법에 대한 의견을 좀 더 추가하면 정보가 훨씬 더 좋을 것입니다. :) :-P –

1

@Peter Mounce가 제안하는대로 NDepend은 좋으며 비상업적 용도로 무료로 사용할 수 있습니다. 의존성 그래프와 같은 멋진 시각화를 많이 사용하게되어 상황에 대한 개요를 얻을 수 있습니다.

Visual Studio 2010에는 비슷한 도구가 Architecture Explorer 형식으로 포함되어 있습니다.이 기능을 사용하려면 아키텍처 추가가 필요하다고 생각합니다. 그러나 대화 형이며 유용한 구조로 드릴 다운 할 수 있습니다.

1

나는 코드 시각화를 위해 SonarQube을 사용합니다. 다양한 측면에서 코드를 보여 주며 SonarQube 대시 보드로 15-20 분을 소비하면 곧바로 코드의 핵심 부분에 도달하게됩니다. 뿐만 아니라 코드의 어느 부분이 복잡하고 코드를 단순화하기 위해 빠른 승률을 얻기 위해 공격 할 수 있는지도 보여줍니다.