최상의 답변
먼저 제가 약 10 년 동안 전문 프로그래머로 일했고 거의 20 년 동안 프로그래밍에 뛰어 들었습니다 (제가 정말 어렸을 때부터). PHP, Java, C ++, Python, JavaScript, C #, ASP 및 QBasic을 작성했습니다 (예, 늙었습니다). 또한 SQL, CSS 및 HTML도 정기적으로 다루고 있습니다.
Windows, Linux 및 Mac에서 편집기를 사용해 왔습니다. 또한 터미널 창에서 편집기를 사용했습니다. 저는 이제 약 10 년 동안 전문적으로 프로그래밍을 해왔습니다. 30 개 이상의 편집기 (VIM 및 Nano와 같은 텍스트 편집기와 Visual Studio 및 PhpStorm과 같은 IDE)를 사용한 개인적인 경험을 통해 편집기의 탭에 대한 기본 표시는 매우 다양하다는 것을 알 수 있습니다.
또한, 동일한 설정을 지정하더라도 편집기 또는 편집기 글꼴로 인해 다른 기이함과 불일치가 발생하는 경우가 있습니다. 스페이스는 표준 언어 구조이기 때문에 그 문제가 없습니다.
내가 지속적으로 알아 차린 한 가지는 PHP-FIG와 같은 대부분의 프로그래밍 스타일 가이드에서 탭 스페이스를 사용하라고 지시한다는 것입니다. 탭 문자를 모방하기 위해 공백을 사용하는 탭입니다. 스마트 탭이라고도합니다.
이것은 합리적으로 현대적이라고 생각할 수있는 모든 편집기에서 지원됩니다. 따라서 속도에 대한 논쟁은 완전히 우스꽝 스럽습니다. 디스크에서 차지하는 공간에 대한 논쟁에 관해서. 말 그대로 파일 크기의 절반 정도를 추가하는 사람은 없습니다. 그것이 당신의 우려라면 당신은 디스크 공간과 비용에 왕성하게 엉망이 될 것입니다.
남은 유일한 논쟁은 시각적 디스플레이입니다. 공간이 먼지에 탭을 남기는 곳입니다. 공백으로 표시되는 탭에서는 일관성이 표시되지 않습니다. 공백은 모든 편집기에서 동일하게 보입니다. 탭은 매우 다양하며 터미널 편집기에서 파일을 열어야하는 경우 (예 : 원격 서버에서 무언가를 검사 할 때) 특히 텍스트 전용 편집기에서 오른쪽으로 스크롤해야 할 때 탭을 다루는 것을 싫어할 것입니다.
일관성과 표준화 (특히 가장 일반적인 표준)를 원한다면 공백을 사용합니다. 우스꽝스러운 불만에만 집중하고 함께 일하는 다른 개발자를 화나게하고 싶다면 탭을 사용하세요.
답변
공백보다 탭의 장점은 다음과 같습니다.
- 개별 개발자는 코드에 대해 다른 들여 쓰기를 선택할 수 있습니다.
- 또한 저장 공간을 적게 사용합니다.
그래도 탭에는 문제가 있습니다.
탭은 최대 열 너비와 제대로 상호 작용하지 않습니다. 프로젝트는 개발자가 모니터에서 나란히 비교를 수행 할 수 있도록하고 개발자가 코드를 빠르게 스캔 할 수 있도록하는 등 여러 가지 이유로 최대 열 너비를 선택합니다. (긴 줄 길이는 읽기 속도를 떨어 뜨립니다. 이것이 출판사가 교과서에서 여러 열을 사용하는 이유 중 하나입니다.)
코딩 표준이 최대 줄 길이를 80 열로 지정한다고 가정 해 보겠습니다.
첫 개발자 개발자는 네 번 들여 쓰기 된 행을 가지고 있으며 두 개의 태그 들여 쓰기 설정을 사용하고 있습니다. 이는 코드가 8 개 열로 들여 쓰기되었음을 의미합니다. 개발자는 전체 라인을 작성합니다. 이 줄은 72 자로 구성됩니다.
이 코드는 검토 자에게 전달됩니다. 검토자는 코드가 4 자 탭 들여 쓰기를 사용하고 있는지 확인합니다. 4 개의 탭은 이제 16 자 너비입니다. 이제 행이 88 열로 이동합니다. 검토자는 개발자에게 8자를 잘라내라고합니다.
코드를 보는 두 번째 검토자는 8 자 들여 쓰기를 사용합니다. 검토자는 8 자 탭 들여 쓰기를 사용하여 코드를 살펴 봅니다. 4 개의 탭은 너비가 32 자입니다. 검토자는 개발자에게 24자를 잘라내도록 지시합니다.
공백을 사용하거나 조직에 균일 한 탭 설정을 지정하면 이러한 문제가 해결됩니다. 고정 탭 설정을 지정하는 경우 탭을 사용하여 시작하는 기본 인수 중 하나를 제거했습니다.
이제 여기 문서 또는 서식이 지정된 텍스트가 포함 된 여러 줄 문자열을 고려해 보겠습니다. asciiflow 또는 monodraw와 같은 도구로 만든 다이어그램을 포함 할 수 있습니다. 들여 쓰기에 탭을 사용하는 경우 도면을 들여 쓰려면 들여 쓰기와 공백의 조합을 사용해야합니다. 다른 탭 들여 쓰기에서이 작업을 수행하려면 다음이 필요합니다.
- 주어진 열에 정렬하기 위해 선행 탭과 공백을 조합하여 사용합니다. 이미지의 모든 줄은 탭 들여 쓰기 수가 동일해야합니다. 그렇지 않으면 다른 탭 들여 쓰기 설정과 함께 사용할 때 이미지가 올바르게 보이지 않습니다.
- 마커 문자를 넣어 공백으로 구분 된 섹션의 시작을 나타냅니다. 예 : \ t / * \ n \ t * foo \ n \ t *. | \ n \ t * 막대 \ n \ t * / \ n
- 그래픽 영역에서 탭 표준을 포기합니다.
- 여러 줄 문자열 또는 주석을 금지합니다.
li>
들여 쓰기에 공백을 사용하면 이러한 모든 문제가 사라집니다.