가능하다면 .. 루비에서 괄호를 안팎으로 남기나요?
가능하다면 .. 루비에서 괄호를 안팎으로 남기나요?
답변:
루비는 일반적으로 괄호를 생략하고 이러한 유혹에 저항 할 수 있습니다.
괄호를 사용하면 코드를 더 쉽게 따라갈 수 있습니다. 일반적인 Ruby 스타일은 다음과 같은 경우를 제외하고 사용하는 것입니다.
- 항상 빈 괄호는 생략하십시오.
- ERb 구분 기호로 둘러싸인 단일 명령에서 괄호를 생략 할 수 있습니다. ERb 마커는 코드를 여전히 읽을 수 있는지 확인합니다.
- 단일 명령 및 단일 단순 인수 인 행은 괄호없이 작성할 수 있습니다. 개인적으로 저는이 작업을 점점 더 적게 수행하지만 여전히 완벽하게 읽을 수 있습니다. 여러 인수가 있고 괄호가없는 일반 루비 코드에서 한 줄을 좋아하지 않는 경향이 있습니다.
- 많은 Ruby 기반 도메인 특정 언어 (예 : Rake)는 문장에보다 자연스러운 언어 느낌을 유지하기 위해 괄호를 사용하지 않습니다.
나는 미래를 돕기 위해 괄호를 주석으로 사용합니다 ... 현재의 나보다 뇌 세포가 적을 가능성이 큰 사람 :-)
2 년 전에 작성한 코드를보고 오해하는 것보다 더 나쁜 것은 없습니다. 그래서 수정하는 동안 무언가를 깨뜨리는 것입니다.
괄호가 앞으로 몇 분 (또는 몇 시간) 안에 미래를 구할 수 있다면 진술을 명확하게하기 위해 필요한만큼 많은 정보를 입력 할 것입니다.
오랫동안 프로그래밍을 해왔다면 괄호를 추가해야하는 "가려움"이있을 것입니다. 많은 경우에 그럴만 한 이유가 있습니다.
제 생각에는 코드가 눈에 더 쉬우 며 아직 문제가 발생하지 않았습니다. 괄호가 필요하다면 디버깅 스크립트를 실행하기 전에 미리 알게 될 것입니다.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
전에 저는 루비를 몇 주 동안 배웠고 제가 일하는 곳에서는 가능한 한 적은 양의 문자를 사용하고 다른 언어에서 온 경우 학습이 있습니다. 묵시적 해시, 기호 배열, 기호를 함수에 전달할 때를 알 수있는 곡선입니다. 저는 팬이 아닙니다.
if owner.is_a? thing and x > 1
and
같은 연산자 우선 순위가없는 &&
이