ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2021.12.04~06기록장
    TIL 2021. 12. 3. 23:33

    ToDo

    • 책 읽기
    •  

    Done

    • 책 읽기

    Weekly goal

    • 책 읽기
    • 영어 레퍼런스 읽기
    • 북마크 읽기, 정리

     

    리팩토링

    여태 매개변수를 작성할 때 객체가 아닌 하나하나 써주는 것이 좋다고 생각했었다.

    이유는 나중에 메서드를 사용할 때 매개변수로 쓸 객체를 새로 만들어야 하는 상황이 생기기 때문이었다.

    예로 test 할 때 객체를 만들어야지만 test 할 수 있는 상황.

     

    근데 마틴 파울러의 책에서는 매개변수가 많아지면 객체로 묶으라는 말을 한다.

    나중에 다른 매개변수가 추가되어도 객체만 수정하면 되기 때문이다.

     

    이전의 생각을 토대로 하면 매개변수가 추가될 때마다 인터페이스가 수정되는 일이 비일비재했다.

    이것은 코드의 수정이 많아지게 되는 일이었다.

     

    책을 더 읽어봐야겠지만 객체로서의 이점을 좀 더 고민해봐야겠다.

     

    151p.

    기능이 간단한 메서드들을 자주 분리하긴 했었다. 재사용이 될 수 있다고 판단을 해서이다.

    근데 중복이 나타났을 때 그때 리팩터링을 통해 분리해도 된다.

    그래서 책에서는 먼저 메서드 안에 직접 삽입을 말해주고 있다.

    단 재귀 등의 복잡한 것이 얽혀있을 때를 제외하고 말이다.

     

    또.

    책을 읽다 보면 임시 변수 삭제를 자주 한다. 나는 임시 변수를 통해 좀 더 프로그래머의 의도가 전달된다고 생각을 했다.

    그래서 계속 의문이었는데 여기서는 임시 변수 사용은 괜찮은데 나중에 임시 변수로 인해 리팩터링이 불가능할 때 임시 변수 내용 직접 삽입을 하라고 말씀한다.

    + 수식이 복잡할 때 등의 직관적 임시 변수 사용은 권장된다.

    + 직관적 임시 변수 사용을 생각할 때마다 더 좋은 방법이 없는지 생각하자. 메서드로 분리한다던지.

     

     

    직관적인 임시 변수를 생성하기 전에 메서드로 분리할 수 있는지 먼저 알아보자.

    이는 다른 곳에서도 사용이 가능해진다.

    메서드 직접 대입과는 좀 대비되는 방법인 듯하다.

     

    170p.

    메서드를 메서드 객체로 전환

    만약에 지역변수 때문에 메서드 추출이 힘들다면 모두를 포함하는 객체로 만들 수 있다.

    이것은 객체에게 특정 의미를 둔다기보다는 메서드를 더 간결하게 하기 위한 객체라고 생각된다.

     

    몇 가지 규칙은 cumpute라는 메서드를 통해 결괏값을 반환해야 하는 것과 객체와 매개변수들을 필드 값으로 가지고  있어야 된다는 점이다.

    기존에 gamma라는 긴 메서드가 있었다면

    gamma라는 객체를 만들어 내부의 cumpute() 메서드를 통해 계산을 하고 반환하는 식이다.

    'TIL' 카테고리의 다른 글

    2021.12.09 기록장  (0) 2021.12.09
    2021.12.07~08 기록장  (0) 2021.12.07
    2021.12.03 기록장  (0) 2021.12.03
    2021.11.29 기록장  (0) 2021.11.29
    2021.11.22 기록장  (0) 2021.11.21

    댓글

Designed by Tistory.