조건식 통합

1847 단어 리팩토링루비


하나씩 리팩토링 기술 요약
개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터

목적



즉시 꺼낼 수 있도록

기본 작업 사이클


  • 시스템을 움직여 사양을 조사
  • 테스트 방법 만들기
  • 테스트 실패 확인
  • 테스트 성공 확인
  • 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인)
  • 마지막 테스트 실행
  • 마지막 동작 확인

  • 조건식 통합(Consolidate Conditional Expression)이란?



    동일한 반환 값을 반환하는 여러 조건식을 메서드로 추출하여 원 라이너로 만듭니다.
    조건식을 OR이나 AND로 정리하는 것

    포인트


  • 반환값이 동일


  • OR계
  • 조건식이 순서대로 나열됩니다

  • def calorie
      return 0 if @food == 'donut'
      return 0 if @food == 'castella'
      return 0 if @food == 'ice'
    end
    

      ↓
    def calorie
      return 0 if @food == 'donut' || @food == 'castella' || @food == 'ice'
    end
    
     ↓
    # そうすると条件文の分解ないしメソッドの抽出もできる
    def calorie
      return 0 if date?
    end
    
    def date?
      @food == 'donut' || @food == 'castella' || @food == 'ice'
    end
    
  • AND계
  • 조건식이 중첩

  • def calorie
      if @user == 'date'
        if @food == 'donut'
          0
        end
      end
    end
    

      ↓
    def calorie
      return 0 if @user == 'date' && @food == 'donut'
    end
    

    책 정보



    Jay Fields (저자), Shane Harvie (저자), Martin Fowler (저자), Kent Beck (저자),
    나가오 타카히로 (역), 리팩토링 : Ruby 에디션
    htps : // 아 mz 응. 및 / 2VlyWML

    잡감



    하고 있는 일은 같지만 설명의 관점이 다르다(혹은 포함하고 있다)라는 것이 많이 있다

    좋은 웹페이지 즐겨찾기