최근에 추가된 rubocop 규칙 확인👮♀️🚨
여러분들이 제일 좋아요.
안녕하세요.👮♀️🚨좋아해요?
새로운 문법과 효율적인 문법을 발견할 수 있다
팀 내에서 코드 스타일을 통일할 수 있고 평론도 스트레스를 받지 않기 때문에 나는 이것이 매우 좋은gem라고 생각한다
이런 루보코프지만 매일 업데이트되는 새로운 규칙이 추가되었습니다
발매 노트는 여기 있습니다.
최근 새로운 프로젝트에 최신 버전의 루보코프를 추가해서 실행을 해봤습니다.
Waring 많이 보고 깜짝 놀랐어요.
오늘 제가 새로운 규칙 중에 화나게 하는 것들을 소개해 드리려고 합니다.
버젼을 0.92에서 1.23으로 바꿔서 욕먹은 거.
Style::HashConversion (from 1.12.0)
# bad
Hash[ary]
# good
ary.to_h
# bad
Hash[key1, value1, key2, value2]
# good
{key1 => value1, key2 => value2}
이것은 Hash를 사용하는 특이한 방법이 아니다[ ]Object 클래스의 인스턴스 메서드to_h와 Hash.new를 사용하십시오.
Correction code from splat argument (Hash[*ary]) is not simply determined
이유는 매개 변수에서 가변 길이 매개 변수 [*arg]를 사용할 때 루비 내부의 전환이 매우 복잡하다는 것이다.
Lint/AmbiguousOperatorPrecedence (from 1.21)
# bad
a + b * c
a || b && c
a ** b + c
# good (different precedence)
a + (b * c)
a || (b && c)
(a ** b) + c
# good (same precedence)
a + b + c
a * b / c % d
Precedence
일본어로 優先順位
산술적으로 *, ÷
비+, -
가 우선이죠.계산에는 문제가 없지만 가독성을 위해 멋있는 척 해주세요
계산하면 문제없지만 이번에는 아래 코드에 화가 났어요.
if (cat? || dog? || other_animal? && animal_detail)
이 조건식猫
이야 아니면犬
진짜야마지막 조건만 복합형이기 때문에, 나는 확실히 다소 가독성이 있다고 생각한다
Style/StringChars (from 1.12)
# bad
string.split(//)
string.split('')
# good
string.chars
이것은 이전 루비의 버젼(~1.9)에서 他の動物かつ詳細が記載されている
방법의 매개 변수가 정규 표현식과 문자열에서 서로 다른 행위를 하기 때문에 사용split
은 안전한 역사적 배경이 있다.ruby2.0을 사용한 후에는 문제가 없을 것 같지만 주의해서 사용하세요
char
Style/NegatedIfElseCondition (from 1.2)# bad
!x ? do_something : do_something_else
# good
x ? do_something_else : do_something
부정을 조건식으로 바꾸지 않는 게 좋을 것 같아요.간혹 하는 건데 댓글에 지적이 됐어요. 루보코프로 줍는 건 정말 간단해요.
끝맺다
gem의 업데이트는 어쨌든 번거롭지만 평소에 루보코프를 업데이트하면
앞으로 팀원들이 들어왔을 때도 코드와 댓글을 간단하게 포착할 수 있을 것 같아요.
그리고 자신의 규칙을 설정할 수 있기 때문에 저는 이것이 팀 개발에 필수적인gem라고 생각합니다.
주제 밖의 말을 하면 VScode를 사용하는 사람
chars
이라는 확장이 편리합니다.일부러
ruby-rubocop
파일save를 실행하지 않아도 자동으로 그 파일을rubocop에 놓습니다혼나면 그 줄에 모기향을 넣는다
Reference
이 문제에 관하여(최근에 추가된 rubocop 규칙 확인👮♀️🚨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/reiya018/items/2a092dde7f4cac1b74db텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)