08 Jan 2023 Refactoring
해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.
냄새 17. 메시지 체인
- 레퍼런스를 따라 계속해서 메소드 호출이 이어지는 코드
- 예) this.member.getCredit().getLevel().getDescription()
- 해당 코드의 클라이언트가 코드 체인을 모두 이해해야 한다.
- 체인 중 일부가 변경된가면 클라이언트의 코드도 변경해야 한다.
...
07 Jan 2023 Refactoring
해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.
냄새 16. 임시 필드
- 클래스에 있는 어떤 필드가 특정한 경우에만 값을 갖는 경우
- 어떤 객체의 필드가 “특정한 경우에만” 값을 가진다는 것을 이해하는 것은 일반적으로 예상하지 못하기 때문에 이해하기 어렵다.
- 관련 리팩토링
07 Jan 2023 Refactoring
해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.
냄새 15. 추측성 일반화
- 나중에 이러 저러한 기능이 생길 것으로 예상하여, 여러 경우에 필요로 할만한 기능을 만들어 놨지만 “그런 일은 없었고..” 결국에 쓰이지 않는 코드가 발생한 경우
- XP의 YAGNI(You aren’t gonna need...
07 Jan 2023 Refactoring
해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.
냄새 14. 성의없는 요소
- 여러 프로그래밍적인 요소(변수, 메소드, 클래스 등)를 만드는 이유
- 나중에 발생할 변화를 대비해서
- 해당 함수 또는 클래스를 재사용하려고
- 의미있는 이름을 지어주려고
- 가끔 그렇게 예상하고 만들어 놓은...
07 Jan 2023 Refactoring
해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.
냄새 13. 반복문
- 프로그래밍 언어 초기부터 있었던 반복문은 처음엔 별다른 대안이 없어서 간과했지만 최근 Java와 같은 언어에서 함수형 프로그래밍을 지원하면서 반복문에 비해 더 나은 대안책이 생겼다.
- “반복문을 파이프라인으로 바꾸는 (Replace Loop with...