2010-07-06 3 views
5

1 ~ 5 줄을 말합니다. 그보다 더 좋은 점은 dev 팀의 다른 사람들에게 이메일을 보내야한다는 것입니다. 이것은 재사용을 돕고, 좋은 명명법과 부부 방법을 강요합니다.평균적인 방법의 크기는 얼마나됩니까?

의견이 있으십니까?

감사

+2

25 개의 1 행 방법과 100 개의 행 방법을 사용할 수 있습니까? – Yellowfog

+15

크기 */라인 수는 기능 **이 한 가지 ** IMO만큼 중요하지는 않습니다. –

+0

저는 개인적으로 정의 된 대답이 "정확합니다"라고 생각하지 않습니다. 그러나 "Bob 삼촌"Martin이 올해 QCon London에서 한 이야기를보고 싶다고 생각했는데, 그는이 주제에 관해 이야기를 나누었습니다. http://www.infoq.com/presentations/Robert-C.-Martin-Bad -Code – AdaTheDev

답변

1

약간 극단적, 나는 5 이하의 cyclometric 복잡성 합리적인 조치보다는 라인의 수라고 생각합니다. 코드를 5 줄 미만으로 줄이면 읽을 수없고 힘든 일이 될 수 있습니다. 나는이 스레드가 주관적으로 닫혀 져야하는 이유에 대해 서로 다른 생각들이있을 것이라는 것을 알고 있습니다.

5

1과 5 줄이 너무 작아서 나에게 한계가있는 것처럼 보입니다. 많은 프로세싱을하지 않는 단순한 비즈니스 애플리케이션을 만들면 괜찮은 것 같습니다. 그러나 알고리즘이나 프로세스가있는 경우 여러 메소드에 걸쳐 분산되지 않고 순차적으로 처리 단계를 작성하기가 훨씬 쉽습니다. 또는 클래스 - 캡슐화, 유효성 검사 등의 목적으로 논리적 인 경우에도 마찬가지입니다.

많은 경우에 5 행은 매개 변수의 유효성을 검사하고 모음을 반복하는 데 충분하지 않습니다.

나는 '대략 한 페이지'를 제안합니다. 20 ~ 30 라인이 이상적입니다.

예를 들어

:이 나에게 유효한 것 같다,하지만 당신은 그것을 팔 개 라인에서 좋은을 고려하지 않을 것이다 :

// Calculates the depth of the layer in the object graph 
    public int GetIndex() 
    { 
     int ct = 0; 
     ViewLayer pos = this; 
     while (pos.Parent != null) 
     { 
      ct++; 
      pos = pos.Parent; 
     } 
     return ct; 
    } 

(내가 코드를 게시하여 비판에 자신을 개방하고 실현,하지만 내를 이 코드는 읽을 수있는 코드입니다.

+2

너무 길기 때문에 다음과 같이 사용해야합니다. public int GetIndex (ViewLayer pos = this) {\ n return (pos.Parent == null)? 0 : 1 + GetIndex (pos.Parent); \ n} 3 라인에서 클럭킹 :-) – paxdiablo

+1

이것은 깨끗한 코드가 아닙니다. 그런 사소한 작업을위한 깨끗한 코드는 주석이 필요하지 않습니다. 첫째, 이름은 DepthInObjectGraph 일 수 있습니다. 두 번째로 이것은 재귀적일 수 있으며 if/else 또는? :를 선호 하느냐에 따라 1 ~ 4 줄을 취할 수 있습니다. – qertoip

+0

@qertiop - 코드를 개선하는 방법을 찾았습니다. 거의 항상 가능합니다. 답과 관련된 귀하의 의견입니다. 즉, 1-4 행보다 길어야하는 방법이 없다고 생각하십니까? –

16

메소드 코드 크기는 메소드의 책임에 대한 잘못된 측정 기준입니다. 이 방법은 정확히 코드 중복이없는 주요한 행동/창조 작업 만 있어야합니다.

1

나는 그것이 그것보다 복잡하다고 생각합니다.

첫 번째 방법은 거듭 제곱 분포를 따르는 경향이 있습니다. 주어진 프로젝트에서 평균 크기가 수렴하지 않는 대부분의 다른 방법보다 훨씬 큰 일부 선법이 있습니다.

둘째, 특정 작업을 수행하기 위해 10 개의 API 호출을 실행해야하는 경우이 호출 시퀀스를 크기 제한에 맞게 두 가지 방법으로 깨는 것이 중요하지 않습니다. 무언가를 분해 할 때 하나 대신에 두 개의 이름 (또는 심지어 세 개)을 주어야합니다. 당신은 각 부분 등을 문서화해야합니다. 결론 : 작은 것은 좋지만 맹목적으로 따라하지 마십시오. 최선의 충고는 모든 방법을 일관성있게 만드는 것입니다.

1

분명히 코드를 탐색하고 이해하기가 더 어려워집니다. A 호출은 B 호출, C 호출, E 호출, D 호출 등입니다. 어떻게 좋은 이름 지정을 시행하는지 잘 모르겠습니다. 내 기존 방법으로는 5 선이 하나도 신경 ​​쓰이지 않습니다.

또한 메서드 서명, 열기 및 닫기 중괄호 및 읽기 가능을위한 추가 줄이 있어야하므로 클래스를 더 길게 만듭니다.

또한 대부분의 linq 문은 5 행을 넘습니다.

2

코드 길이 요구 사항을 너무 길게 지정하십시오.

개발자가 코드 기반을 개발하는 것보다 전자 메일을 쓰는 데 정말로 시간을 할애 해 주시겠습니까?

관련 문제