저는 최근에 쓰지 않은 Ruby 메서드를 단순화하기 위해 노력했습니다. 동료가 작성한 기존 프로젝트의 일부입니다. 일반적으로 우리는 코드 채무가 누적되지 않는 훌륭한 일을 해 냈습니다. 그러나 약간의 사랑이 필요한 몇 가지 방법이 있습니다.Ruby-ish 방식으로이 방법을 단순화하는 방법은 무엇입니까?
단순화 한 방법은 원래 중첩 된 if-else 블록의 대량이었습니다. 메소드가 무엇을하는지 결정하고 메소드를 단순화하여 더 이상 중첩 된 if가 없도록했습니다.
이제 더 단순화하고 가능한 경우 하나의 return
문을 제외한 모든 것을 제거하고 싶습니다. 이 방법은 더 이상이보다 있지만, 그것이 지금의 모습의 일반적인 개념이다 : 나는 return
문을 줄이기 위해 raise
및 예외 처리를 사용하는 방법에 대한 생각
def return_bool
return false unless condition1 && condition2
@var = SomeClass.getter(foo)
return true unless var.someProperty != 0
@stuff = @var.getsomething id
return false unless @stuff && somethingElse
data = JSON.parse(@stuff)
@stuff.each do |stuff|
return false if data[stuff['something']] != stuff['anotherSomething']
end
return true
end
하지만 경우, 예를 들어, condition1
이 거짓 , 그것은 예외적 인 상황이 아니며, 나는 특정 시간에 그것을 기대한다.
return
문을 줄이는 방법은 무엇입니까? 가능하다면 실제로 가능하면 암묵적으로 반환하는 것을 선호합니다. 대신 마지막 .each
루프의
는'raise'는'실제로 유용한 무언가를 – Nakilon
을 return'보다 결코 더 나은 무엇입니까? –
@ 그렉 예. 앞서 언급했듯이, 더 큰 방법이지만 작은 코드 샘플을 게시하여 요지를 얻고 싶습니다. – Alex