일반적으로 단일 응용 프로그램에서 얼마나 많은 코드가 재사용됩니까?
IMO "일반적인"응용 프로그램이 없습니다. 특히이 점에 있어서는 그렇지 않습니다. 애플 리케이션은 크게 다른 아키텍처와 실행 흐름을 가지고있어서 "재사용"의 패턴이 달라집니다.
특정 형식의 파일에서 데이터를 읽고 다른 형식으로 변환 한 다음 저장하는 배치 데이터 처리 응용 프로그램을 생각해보십시오. 실제로는 단일 실행 경로가 있으므로 두 개 이상의 장소에서 많은 메서드가 호출되지 않습니다.
OTOH는 모두 동일한 인프라 계층을 사용하는 여러 개의 독립적 인 플러그인이있는 플러그인 프레임 워크를 고려하므로 해당 계층의 함수는 여러 곳에서 호출됩니다.
첫 번째 앱의 디자인이 두 번째 앱의 디자인보다 더 나쁘다고 말할 수는 없습니다 (실제로 사례 별 세부 정보는 확인하지 않음).
두 번째 경우의 메트릭은 까다 롭습니다. 플러그인없이 핵심 프레임 워크 자체 만 측정하면 재사용 횟수는 적지 만 실제 플러그인에서는 재사용 횟수가 더 많습니다. 플러그인은 외부에서 개발 될 수 있기 때문에 이러한 플러그인에 액세스 할 수 없기 때문에 메트릭이 왜곡 될 수 있습니다.
또 다른 점은 재사용이 여러 단계에서 발생할 수 있다는 것입니다. 앱 내에서 또는 앱간에 코드를 재사용 할 수 있습니다. 후자는 문제의 모든 앱을 고려해서 만 측정 할 수 있습니다.
더 나은 접근 방법은 다른 끝에서 시작하여 복제 된 코드를 검색하는 것입니다 (예 : Java 코드 용 PMD와 같은 도구 사용). 여러 곳에서 코드가 중복되는 경우 리팩터링해야합니다.
나는이 모든 장애물을 알고 있지만, 나는 아직도 뭔가하고 싶다. 나는 어떤 종류의 참고가 필요하다. 다른 모듈을 개별적으로 분석 할 수 있습니다. (아직 시도하지 않았다.) 좋은 접근법은 함수 당 사용 횟수 분포를 조사하는 것이다. (나는 이미 해왔다. X 축에서의 사용 횟수, Y 축에서 X 번 사용 된 함수의 수). 내가 가정하는 것은, 이 배포판은 다른 대형 소프트웨어 패키지와 비슷하므로 비교가 가능해야합니다. 간단한 시작으로, 나는 한 번 이상 호출되지 않는 함수가 얼마나 많은지 관심을 가질 것이다. – user384278