2013-03-05 3 views
0

JavaScript 스타일 가이드를 개발 중이며 코드 규칙에 적용 할 수있는 유일한 규칙은 일관성이 있다는 것을 알고 있지만이 질문에 대해서는 궁금합니다. 프레임 워크는이 규칙을 사용합니다.JavaScript 코드 규칙 - 객체 선언

개체/변수를 선언 할 때 콜론/같음 세로 정렬의 장점과 단점은 무엇입니까?

var a = 1, 
    ab = 2, 
    abc = 3; 

var obj = { 
    a : 1, 
    ab : 2, 
    abc : 3 
}; 
+0

읽기가 쉽습니다. "스타일 가이드"에서 대부분의 것에 대해 제시되는 논쟁입니다. – Chad

답변

1

코드 가독성이 뛰어납니다. 그게 다야.

단점은 필요한 것보다 많은 공간이 있으므로 find를 사용하여 변수 값을 찾을 때 불이익이 있습니다. 따라서 variablename =을 검색하면 실제적으로 variablename[space][space][space]=으로 정의되기 때문에 아무런 결과도 얻을 수 없습니다.

+0

그게 유일한 대답에 관한 것 같아요.하지만 그게 스타일 가이드에서 찾을 수있는 모든 것에 대해 적용되지 않나요? –

+0

왜 downvote? –

0

각 변수를 별도의 줄에두면 다른 변수임을 분명히하기 때문에 다시 읽는 것이 좋습니다 (또는 다른 사람이 읽음). 따라서 가독성이 향상됩니다.

장기간에 걸쳐 다른 프로그래머에게 코드를 전달하거나 유지 보수하거나 오랜 기간 후에 다시 돌아와서 코드를 기억할 수없는 경우에 주로 이점이 있습니다.

대부분의 언어에서 동일합니다.

또한 서로 변수를 정렬하면 코드가 매우 깔끔하고 깔끔하게 보이지만 대부분의 사람들은 그렇게하지 않아도됩니다. 줄의 시작 부분을 정렬 할 수 있지만 나중에는 그 부분을 정렬하지 않습니다.

무엇인가가 변경되고 모든 것을 재정렬해야한다면 어떻게 될지 상상해보십시오.

좋지 않습니다. 프로그래밍에 소비 될 수있는 시간 낭비.

내가 당신의 시스템을 계승 것을 상상하거나 작업을해야합니다

+0

물론 쉼표는 줄 끝까지 가야하지만 사소한 차이가 있습니다.대부분의 경우 각 줄마다 별도의 var를 사용한다는 점에 동의합니다. 개인적으로 그렇게하지만 코딩의 이런 방식을 좋아하는 사람들이 있으며 우리가 그것에 대해 할 수있는 것은 없습니다. 그것은 문자열을 연결하는 것과 비슷합니다. 어떤 사람들은 "Some text"+ variable + "some more text"를하고 어떤 사람들은 문자열 형식을 사용하여 작업을합니다. 좋아하는 것 ... 그러나 일반적으로 그 스타일을 고려하면. var a = 1, b = 2, c = 3 대신 위의 스타일을 읽는 것이 더 쉽습니다. 하지만 나는 당신에게 동의합니다. –

0

코드에서 검색하면 하나의 명백한 단점이 될 것입니다. 진행 상황에서 변수가 무엇인지 파악해야합니다. 이 시스템은 많은 코드베이스를 가지고 있기 때문에 단순히 모든 라인을 스크롤하여 볼 수는 없습니다.

코드 표준이 variable = 123 인 경우 variable[SPACE]=[SPACE]에 대해 간단히 "파일 검색"을 수행 할 수 있습니다.

게시 한 표준이 좋지 않을 수도 있습니다. 변수 이름과 등호 사이에 몇 개의 공백이 있는지 알 수 없습니다. 물론 a[SPACE]=, a[SPACE][SPACE]=, a[SPACE][SPACE][SPACE]= 등을 검색 할 수는 있지만 훨씬 어려울 것입니다.

선언 검색을 사용하지 않는 원시 코드 편집기에서 유일한 선언 방법은 variable\s+= (하나 이상의 공백) 또는 variable\s*= (공백이없는 공백)에 대한 Regex 검색을 수행하는 것입니다. 이 작업은 오래 걸리고 Regex 검색 기능을 가진 편집기가 필요합니다.

+0

'variable \ s * ='이 아니겠습니까? 어떤 공간이 있다고 누가 말할 것입니까? –

+0

@TedHopp 나는 등호/콜론 앞의 공백을 따르는 것으로 보이는 OP의 표준에 대해 간단하게 설명하려고했지만 당신 말이 맞습니다. 귀하의 요점을 설명하기 위해 제 대답을 업데이트했습니다. – h2ooooooo