Wordpress 코드가 왜“공간 행복”입니까?


22

WP 코어, 많은 WP 플러그인 및 WP 코딩 표준 자체Space문자 의 매우 "풍부한 적용"을 사용합니다 (들여 쓰기가 아니라 구획 및 괄호의 "내부"). 이것은 Wordpress 고유의 것으로 보입니다-이 스타일 / 철학은 다른 유사한 프로젝트, PHP 또는 다른 프로젝트에는 존재하지 않는 것 같습니다.

이 방법에 대한 자세한 내용은 https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage를 참조하십시오.

예: foreach ( (array) $foo as $bar ) { ...

foreach 후, 첫 번째 후 (및 마지막 앞 )및 위의 링크에서 "Space Usage"에 표시된 다른 유사한 공백을 말합니다.

이 스타일은 나에게 불필요하게 보입니다. 더 많은 타이핑이 필요하고 (의견) 파싱 코드를 시각적으로 더 어렵게 만듭니다. (/ opinion)

이 스타일이 좋은 아이디어인지 아닌지 토론하고 싶지 않습니다 . 오히려 나는 이것이 왜 이것이 권장되는 스타일 인지에 대한 동기를 이해하고 싶습니다 . WP 코딩 표준에 대한 의견조차도 호기심이 많습니다.

여기에 이미지 설명을 입력하십시오

MK Safi의 질문에 제공된 답변은 본질적으로 다음과 같습니다.

  1. 가독성
  2. 현상 유지 (일명 "그냥 그렇습니다")

내가 묻는 이유는 내부 프로젝트에서 WP 코딩 표준 ( "공간 사용"에 관한)을 채택 할 때 개인적으로 큰 가치를 보지 못하기 때문입니다. 그러나 뭔가 빠진 것이 궁금합니다.

워드 프레스의 "공간 사용"스타일을 따르기 위해 위에서 언급 한 두 가지 이외의 이유가 있습니까?


2
일관된 한 내부 프로젝트에서 원하는 작업을 수행 할 수 있습니다. 참고로 공백 대신 탭을 사용하므로 타이핑이 덜 필요합니다. 모든 형식을 수행하고 다른 스타일로 다시 포맷 할 수있는 최신 IDE가있는 경우 어떤 식 으로든 중요하지 않습니다. 패키지, PHPStorm 등)
Tom J Nowell

귀하의 의견에 감사드립니다, @TomJNowell! 내 "질문"에서 잘못 통신 한 것 같습니다. 들여 쓰기를위한 탭 / 공간에 대해서는 덜 묻고 make.wordpress.org/core/handbook/coding-standards/php의 "공간 사용"에 언급 된 규칙에 대해서는 덜 묻습니다. / ... . 더 명확하지 않은 죄송합니다!
rinogo

5
구문 강조 표시가 없으면 쉽게 읽을 수 있습니다. 그것이 적어도 내부 프로젝트에서 해당 스타일을 사용하는 이유입니다. 최소한의 구성으로 vi가있는 일반 콘솔에서 PHP를 자주 편집해야합니다.
fuxia

2
FWIW, MediaWiki는 매우 유사한 스타일 규칙을 가지고 있으며 실제로 (적어도 핵심에서는)이를 시행하는 데 매우 엄격합니다. 누락 된 공백을 자동으로 추가하는 스크립트 도 있습니다 . 내가 말할 수있는 것은, 잠시 후에 그것에 익숙해 졌다는 것입니다.
Ilmari Karonen

1
@rinogo 알아요, 댓글은 가끔 댓글 일뿐입니다. :)
Tom J Nowell

답변:


13

공명

"공백" 에 관하여 (탭이나 공백에 상관없이) : 단순히 프로젝트를 고수 한 개인적인 취향입니다.

WP 코딩 표준 imo는 혼란스럽고 무시할 수 있습니다. 코어에 기여하지 않는 한

  • 다른 이야기와
  • 스타일 가이드도 무시됩니다.

"[...] 오래된 코드에는 svn / git 이력을 사용하기가 매우 어렵 기 때문에 소급 적용되지 않습니다. 공식적인 정책은 새로운 코드가 스타일 가이드를 따라야하지만 인접한 코드를 올바르게 포맷해야하는 경우입니다 "그런데, 코드 만 포맷하는 패치 나 포맷 코드 만 금지하는 커밋"

-댓글에 @TomJNowell

대안

PSR 표준 (즉, 2) 또는 Symfony 표준 (또는 자신의 표준)과 같은 것을 고수하는 것이 좋습니다 .

성능 향상 및 도구

코딩 표준을 가지고 있거나 (나머지가 그것을 규정하는 반면, 공유 할 수있는 것과 소수를 제외하고) 더 많거나 적은 탭이나 공백을 가짐으로써 얻는 이익은 없습니다. 불필요한 디스크 공간이 사용되거나 프로그램 속도가 느려질 경우에도 커밋시 코드를 압축 할 수 있습니다 ( GitPHPHooks 프로젝트 참조 ). 얻을 수있는 이점 은 원본 파일 공간에서 최대 5 % 정도이며 HTML 구문 압축 / 축소와 거의 같습니다. 이를 위해 npm을 통해 사용 가능한 Node.js 축소 도구가 있습니다.

개인적으로 도움이되는 것은 PHP Linter 와 _PHP Mess Detector입니다. 나는 GitPHPHooks Library에 둘 다 통합 했기 때문에 실행에 대해 생각하거나 신경 쓰지 않아도됩니다.


스타일 가이드는 Core에서 무시되지 않지만 svn / git 기록을 사용하기가 매우 어려워 이전 코드에는 소급 적용되지 않습니다. 공식적인 정책은 새로운 코드가 스타일 가이드를 따라야한다는 것입니다. 그러나 인접한 코드를 올바르게 형식화하는 경우에도 그렇게해야합니다. 그러나 형식 코드 만 패치하거나 형식 코드 만 금지한다는 커밋
Tom J Nowell

@TomJNowell 따라서 스타일 가이드를 쓸모 없게 만듭니다 :) 어쨌든 편집을 제출 하고 답변에 추가하십시오. 주목할만한 정보입니다.
카이저

내 질문에 명확하지 않다고 생각 합니다. make.wordpress.org/core/handbook/coding-standards/php/… 에서 탭 대 공백이 아닌 "공간 사용"에 대한 언급이 적습니다 . 명확하게 질문을 편집하겠습니다.
rinogo

1
@rinogo 나는 당신을 처음으로 맞았으므로 첫 번째 단락입니다. Btw, 나는 이것을 더 읽기 쉽다고 생각합니다.
카이저

7

와 같이 점 뒤의 공백은 정상입니다. 예를 들어이 $baz . '-5'스타일은 연산자 ( y + z)의 많은 코딩 표준에서 사용됩니다 .

가독성을 높이기 위해 수행됩니다. 예를 들어,이 중 하나가 다른 것보다 더 읽기 쉽습니다.

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

이것은 다른 "코드"로 둘러싸 일 때 더욱 분명해집니다.

괄호 주위의 공백에 ( 1, 2, 3 )대해서는 잘 모릅니다. 논쟁은 가독성에 대한 것입니다.

워드 프레스 표준 자체 에는 공백이없는 주석에 괄호가있는 예제가 있고 코드베이스 자체에는 공백이있는 일부 부분과 동일한 기능 내에서도 공백이없는 일부 부분 (아래 스크린 샷 참조)과 혼동되기 때문에 혼동 될 수 있습니다 .

대부분의 PHP 표준은 실제로 반대의 호출을합니다. 괄호는 내용을 포옹해야합니다. 실제로 다른 언어에 대한 대부분의 코딩 표준은 다음과 같이 작성합니다. (1, 2, 3)WP가 이런 식으로하는 이유는 약간의 미스터리입니다.

다음은 WordPress 기능과 비교할 수있는 예입니다.

여기에 이미지 설명을 입력하십시오

비교할 큰 버전 : http://i.imgur.com/nTEbV7v.jpg

전체 코드 화면을 볼 때 특히 오른쪽에있는 것을 선호하지만 개인적인 취향입니다.


답변 주셔서 감사합니다! 그만큼.으로 간격은 나에게 의미가 .처럼, 정말 이진 연산자 +-. 괄호에 대한 당신의 생각이 내용을 "안아주는 것"은 내가이 질문을 한 이유입니다. 이 동작과 대괄호 (WP는 사용 $foo['bar']$foo[ $bar ]) 와 같은 더 이상한 규칙과 함께이 질문을 한 이유입니다. :)
rinogo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.