객체 지향 언어에 대한 클래스 대 코드 라인의 좋은 비율은 무엇입니까? [닫은

StackOverflow https://stackoverflow.com/questions/186070

문제

객체 지향 언어 (C ++, C#, Java 등)에 대한 번호 클래스의 코드 라인과 좋은 비율은 무엇입니까?

소프트웨어의 복잡성을 측정하기 위해 전통적인 LOC (Line of Code) 지표와 같은 관리자를 포함한 많은 사람들은 많은 딱딱한 객체 지향 개발자가 LOC가 중요한 클래스 수는 가치가 없다고 말할 것입니다. 그리고 개인적으로 나는 계급이 더 합리적인 복잡성의 지표 일 수 있다고 생각하지만, LOC 메트릭이 없으면 해당 계급의 실제 복잡성 (Poltergeist와 Gods의 양)의 실제 복잡성은 추정하기 어렵다고 생각합니다.

따라서 상당히 잘 코딩 된 소프트웨어의 건강한 비율이 무엇인지 아는 사람이 있습니까?

편집 :이 특별한 경우, 나는 코드를 정리하는 데 얼마나 많은 리팩토링이 필요한지에 대한 볼-파크 추정치를 결정하는 비율을 찾고 있습니다.

편집 : 누구든지 Firefox, Apache, Webkit 등과 같은 일부 큰 OSS 프로젝트의 비율을 알고 있습니까?

도움이 되었습니까?

해결책

LOC 또는 NLOC는 실제로 코드의 품질이나 건강을 잘 측정하지 않습니다. 사용하는 것이 좋습니다 ndepend솔루션의 정적 코드 분석 (.NET PEEPS)의 솔루션이 얼마나 잘 아키텍처되는지 확인하십시오.

LOC는 방법 수준에서만 좋은 측정 값이라는 것을 알았습니다. 즉, 나는 일반적으로 화면에 맞는 방법을 좋아합니다 (작은 글꼴 없음). 단위 테스트 외에도 사이클로틱 복잡성 및 코드 커버리지 (TDDER)와 같은 다른 메트릭은 코드베이스가 얼마나 건강한 지 더 나은 느낌을 줄 수 있습니다.

다른 팁

이 질문에 대해 실제로 선하고 결정적이거나 만족스러운 답이 없을 것입니다. 그러나 내 경험상 수업 당 코드 라인은 객체 지향 프로그래밍에서 경험이 증가함에 따라 감소한다고 말할 것입니다.

객체 지향 디자인 원칙을 연구하지 않은 대부분의 사람들은 많은 코드 라인을 가진 수업을받는 경향이 있습니다. 객체 지향적 인 경험이 많은 사람들은 수업 당 코드 줄이 적지 만 수업이 훨씬 더 많습니다. 물론, 둘 다 서로에 대해 불평 할 것입니다 :-).

당신이 정말로 경험의 규칙을 찾고 있다면, 나는 읽을 수있는 해상도로 단일 용지에 인쇄 할 수없는 클래스가 너무 길고 리팩토링되어야한다고 말할 것입니다. 그런 다음 목표 마크는 100-200 줄의 순서에있을 수 있지만 내 마음에 페이지 요소 수는 대처하기가 조금 더 쉽습니다.

또한 메트릭의 수는 선형이 아닌 악의의 척도로 간주되어야한다고 확신합니다. 코드베이스에 10 페이지 클래스가 있다면 적어도 삼백 만 작은 수업보다 나에게 더 나쁘다.

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