가능한 경우 중괄호 가 없는 버전을 선호 합니다.
다음 설명은 길다. 저를 참아주세요. 나는이 스타일을 선호하는 강력한 이유를 제시 할 것이다. 또한 왜 일반적인 반론이지지되지 않는다고 생각하는지 설명 할 것입니다.
(근처) 빈 줄은 낭비입니다
그 이유는 닫는 중괄호에 추가 코드 줄이 필요하고 스타일에 따라 여는 중괄호도 필요하기 때문입니다. 1
이것이 큰 문제입니까? 피상적으로 결국 대부분의 사람들은 코드에 빈 줄을 넣어 논리적으로 약간 독립적 인 블록을 분리하여 가독성을 크게 향상시킵니다.
그러나 수직 공간 낭비를 싫어했습니다. 현대 모니터에는 실제로 수평 공간이 충분합니다. 그러나 수직 공간은 여전히 매우 제한적입니다 (모니터를 똑바로 사용하지 않는 한 드문 일이 아닙니다). 이 제한된 수직 공간 은 문제입니다. 개별 방법은 가능한 한 짧아야하고 해당 버팀대 (또는 다른 블록 구분 기호)는 화면 높이 차이가 아니어야 전체 블록을 볼 수 있습니다. 스크롤.
이것은 근본적인 문제입니다. 일단 화면에서 전체 블록을 더 이상 볼 수 없으면 파악하기가 복잡해집니다.
결과적으로 중복 된 빈 줄이 표시됩니다. 하나의 빈 줄이 독립 블록을 구분하는 데 중요한 경우 (이 텍스트의 시각적 모양을 보아라) 연속적인 빈 줄은 내 책에서 매우 나쁜 스타일이며 내 경험상 일반적으로 초보자 프로그래머의 표시입니다.
마찬가지로, 단순히 버팀대를 고정하고 절약 할 수있는 라인이 있어야합니다. 중괄호로 구분 된 단일 문 블록은 1 ~ 2 줄을 낭비합니다. 화면 높이 당 50 줄만 있으면 눈에.니다.
중괄호를 생략하면 해를 끼치 지 않을 수 있습니다.
중괄호 생략에 대한 단 하나의 주장 이 있습니다 . 누군가 나중에 문제의 블록에 다른 명령문을 추가하고 중괄호를 추가하는 것을 잊어 버려 코드의 의미를 실수로 변경한다는 점입니다.
이것은 실제로 큰 일이 될 것입니다.
그러나 내 경험으로는 그렇지 않습니다. 나는 조잡한 프로그래머입니다. 그러나 수십 년의 프로그래밍 경험에서 솔직히 말하면 싱글 톤 블록에 추가 명령문을 추가 할 때 중괄호를 추가하는 것을 잊어 버리지 않았다고 말할 수 있습니다 .
나는 이것이 일반적인 실수 여야한다는 것을 믿기 어려워합니다. 블록은 프로그래밍의 기본 부분입니다. 블록 레벨 분석 및 범위 지정은 프로그래머에게 자동으로 심화 된 프로세스입니다. 뇌는 단지 그렇게한다 (그렇지 않으면 프로그래밍에 대한 추론은 훨씬 더 어려울 것이다). 중괄호를 기억하는 데 추가로 정신적 인 노력이 필요하지 않습니다. 프로그래머는 또한 새로 추가 된 명령문을 올바르게 들여 쓰는 것을 기억 합니다. 프로그래머는 이미 블록이 포함되도록 정신적으로 처리했습니다.
이제, 나는 하지 중괄호를 생략하는 실수를 유발하지 않는 말. 내가 말하는 것은 우리에게 어떤 식 으로든 다른 증거가 없다는 것입니다. 우리는 단순히 그것이 해를 끼치는 지 모릅니다 .
따라서 누군가가 과학 실험에서 수집 한 하드 데이터를 보여줄 때까지 이것이 실제로 실제로 문제가된다는 것을 보여줄 때까지,이 이론은“ 정확한 이야기 ”로 남아 있습니다. 인수로 사용 해서는 안됩니다 .
1 이 문제는 중괄호를 포함하여 모든 것을 같은 줄에 놓아서 때때로 해결됩니다.
if (condition)
{ do_something(); }
그러나 나는 대부분의 사람들이 이것을 멸시한다고 말하는 것이 안전하다고 생각합니다. 또한 중괄호가없는 변형과 동일한 문제가 있으므로 두 세계에서 최악입니다.