문제

그렇습니다. 두려운 'M' 단어입니다.

워크스테이션, 소스 제어 및 작성하지 않은 소스 코드 50만 줄이 있습니다.문서가 승인되고 게시된 순간에는 문서가 최신 상태가 아니었습니다.원래 개발자는 LTAO이며 다음 프로젝트/시작/루니 빈에서 이메일에 응답하지 않습니다.

당신은 무엇을 할 예정입니까?

{favourite editor}와 Grep이 코드 베이스의 꼬인 부분을 통해 탐험을 시작하도록 도와줄 것입니다. 하지만 유지 관리 엔지니어 도구 상자에는 어떤 다른 도구가 있어야 할까요?

볼 롤링을 시작하려면;내 생각엔 나 없이는 살 수 없을 것 같아 소스 통찰력 C/C++ 동굴탐험용.(부인 성명:나는 그들을 위해 일하지 않습니다).

도움이 되었습니까?

해결책

.NET 공간에서 가장 좋은 도구 중 하나는 resharper. 이 도구는 개발 수명주기의 모든 측면에서 시간을 절약했습니다. 그들은 또한 문서화되지 않은 프로젝트/솔루션에 가입 할 때 생존을 도왔습니다.

  • 코드 리팩토링
  • 코드 탐색
  • 코드 분석

이것들은 시간이 많이 걸리는 작업을 수행하는 데 도움이되는 많은 기능 중 일부입니다.

다른 팁

코끼리를 먹는 것과 마찬가지로 - 한 번에 하나의 물린 :)

때로는 큰 그림이 진정한 동기 부여자가 될 수 있으며, 스팟을 골라서 한 조각으로 해결해야합니다.

물론, 여전히 시작할 비트를 선택해야합니다 ... 일반적으로 이것은 최우선 우선 순위 특정 변경 사항이있는 사용자/비즈니스에 의해 가장 많이 주도됩니다 (어제 ...). 종종 유용합니다. 여기에서 도구는 기술과 언어에 따라 다르지만 ndepend 그리고 jdlepend, 모든 내장 코드 메트릭 (Visual Studio Team System 또는 다양한 Eclipse 플러그인 등) 또는 다음과 같은 도구 유인원 복사 및 붙여 넣기 문제의 크기에 대한 느낌을 얻으려면.

바라건대 단위 테스트와 커버리지의 수가 0보다 크기 때문에 첫 번째 단계는 항상 학습 할 때 더 많은 테스트를 추가하기위한 기초로 지속적인 통합 환경에서 실행할 수있는 테스트를 항상 얻는 것입니다.

그리고 다른 사람들이 말했듯이 - 언어에 대한 옵션을 사용할 수 있다고 가정 하듯이 코드 탐색 및 자동 리팩토링을 갖춘 좋은 IDE는 필수입니다 (Eclipse, Visual Studio (Resharper 또는없는).

사기 부스트하는 몇 권의 책 :

행운을 빕니다 :)

코드 검색 엔진은 거대한 소스 기반을 탐색하는 데 도움이 될 수 있습니다.

Langauge에 민감한 소스 코드 검색 엔진은 SD 소스 코드 검색 엔진.동시에 여러 언어를 처리할 수 있습니다.특정 langauge의 패턴 또는 언어의 패턴 (예 : "세금 관련 식별자 찾기")에 대한 검색을 수행 할 수 있습니다.Langauge 토큰에 민감함으로써 오 탐지의 수가 줄어들어 사용자가 시간을 절약합니다.C, C++, C#, COBOL, Java, ECMAScript, Java, XML, Verilog, VHDL 및 기타 여러 언어를 이해합니다.

(저는 도구 설계자입니다).

나는 보통 Linux의 EMACS + CSCOPE로 시작합니다. Visual Studio에는 Windows와 유사한 기능을 제공하는 검사 도구가 있습니다. Doxygen은 매우 유용 할 수 있습니다. 소스에 문서 주석이 없어도 유용 할 수있는 문서를 생성합니다.

UML 도구 (펜 =)가있는 간단한 노트북) 및/또는 구축 클래스, 호출, 메서드 계층 (IDE에 통합)을위한 도구를 실행합니다. 그런 다음 디버거 또는 간단한 단위 테스트로 다이나믹스를 보겠습니다. 이 물건을 사용하면 디자인을 알아 내기 위해 일종의 역 엔지니어링을 수행하려고 노력할 것입니다.

그런 상황에서는 사용할 것입니다 C ++에 대해 이해하십시오

사용 a 서명 조사 프로세스는 코드에 대한 조류의 눈을 이해하는 좋은 방법입니다. 우수한 스크립팅 언어와 일부 모조를 사용하여 언어가 어려운 작업이 아닌 자체 코드베이스에 대한 고도로 사용자 정의 된 서명 설문 조사를 구축합니다.

버그 추적 소프트웨어, 특히 소스 제어 소프트웨어에 링크하는 경우 소스 제어 소프트웨어가 귀중한 경우, 일부 가난한 결정이 이루어진 이유에 대한 통찰력을 줄 수 있습니다. 유지 보수 프로그래머가 리팩토링을 수행 할 계획이라면 더욱 중요합니다.

서면 로그도 도움이되므로 시스템을 문서화 할 수 있습니다.

네, 머리에 못을 박았습니다. UNIX 쉘과 유용한 메모장 ++는 ColdFusion, PHP, Perl 등에서 유지 보수 작업을했을 때 사용했던 것입니다. 편집기를 전환하지 않고 이름/param/변수에 대한 모든 참조를 추적하는 것이 좋습니다.

이제 나는 마우스 오른쪽 버튼을 클릭하고 Visual Studio에서 '모든 참조 찾기'를 쳤습니다. 이는 정직한 속임수처럼 보입니다. PHP 직원들은 편집에 VI를 사용해야하기 때문에 매우 질투합니다. ;)

중요한 도구는 코드 기반을 탐색 (및 편집)하여 이해를 돕는 것입니다.

클래스 관계를 표시 할 수있는 무언가를 갖는 것이 매우 유용합니다 (OO 언어를 사용하는 경우). (정적) 콜 트리 표시 능력은 또한 당신이 할 변화의 영향을 측정 할 때 매우 유용합니다.

당신은 Source-Insight를 언급합니다. 오랫동안 실행되는 오픈 소스 프로젝트는입니다 소스 네비게이터. 한동안 정체 된 후 개발이 다시 시작된 것 같습니다.

Lutz의 반사판은 특히 코드와 바이너리가 혼합 될 때 이에 유용합니다. 통화 및 종속성 그래프 (사용, 노출, 인스턴스화 등), 어셈블리 그래프 및 일부 훌륭한 플러그인을 얻습니다.

ndepend는 전용 도구입니다 리엔지니어 레거시 코드, 특히 대형 얽힌 레거시 코드베이스 면책 조항 : 저는 도구 개발자 중 하나입니다

인용합니다 Scott Hanselman은 자신의 블로그에 한 번 썼습니다: "ndepend는 내가 전에 보지 못했던 응용 프로그램에 대한 통찰력을 제공하고있다.

리엔지니어링에 유용한 일부 NDEPOL의 기능은 다음과 같습니다.

당신은 할 수 있어야합니다 탐색 코드베이스 전체에서. 좋아하는 IDE가이를 허용하는 경우 다음과 같은 인덱서를 사용할 수 있습니다. C ++에 대해 이해하십시오 (이미 인용), LXR, 또는 오픈 그로크.

서둘러, 당신은 의존 할 수 있습니다 Grep (1s) 또는 - 더 나은 - ACK.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top