본문 바로가기

클린코드

[Refactoring] 18. 중재자 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 중재자 캡슐화를 통해 내부의 구체적인 정보를 최대한 감출 수 있으나, 어떤 클래스의 메서드가 다른 클래스의 메소드 호출을 대부분 위임하고 있다면 중재자를 제거하거나 클라이언트가 해당 클래스를 직접 사용하도록 코드를 개선할 수 있다. 캡슐화는 항상 정도가 있다. 과도한 캡슐화는 독이 된다. 관련 리팩토링 중재자 제거하기 -> 리팩토링을 사용해 클라이언트가 필요한 클.. 더보기
[Refactoring] 17. 메시지 체인 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 메시지 체인 레퍼런스를 따라 계속해서 메서드 호출이 이어지는 코드 this.member.getCredit().getLevel().getDescription() 코드 체인을 모두 이해해야 로직을 이해할 수 있다. 체인 중 일부가 변경된다면 클라이언트의 코드도 수정해야 한다. 관련 리팩토링 위임 숨기기 -> 메시지 체인의 캡슐화 함수 추출하기 -> 메시지 체인 일부를.. 더보기
[Refactoring] 16. 임시 필드 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 임시 필드 클래스에 있는 어떤 필드가 특정한 경우에만 값을 가지는 경우 관련 리팩토링 클래스 추출하기 -> 변수 이동 함수 옮기기 -> 변수를 사용하는 함수를 특정 클래스로 옮기기 특이 케이스 추가하기 -> 특정한 경우에 해당하는 클래스를 만들어서 해당 조건을 제거 Refactoring 1. 특이 케이스 추가하기 어떤 필드의 특정한 값에 따라 동작하는 코드가 반복.. 더보기
[Refactoring] 15. 추측성 일반화 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 추측성 일반화 나중에 쓰일 것으로 예상하고 작성한 코드가 쓰이지 않는 경우 XP의 YAGNI(You aren`t gonna need it) 원칙을 따르자 관련 리팩토링 계층 합치기 -> 추상 클래스를 만들었지만 사용하지 않을 경우 함수 인라인, 클래스 인라인 -> 불필요한 위임을 했을 경우 함수 선언 변경하기 -> 사용하지 않은 매개변수를 가지고 있을 경우 죽은 .. 더보기
[Refactoring] 14. 성의없는 요소 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 성의없는 요소 변수, 메서드, 클래스 등을 만드는 이유 추후 발생할 변화를 대비 재사용을 위해서 의미있는 이름을 위해서 예상하고 만들어 놓은 요소들이 기대에 부응하지 못하는 경우가 있는데 그런 경우에는 해당 요소를 제거해야 한다. 관련 리팩토링 함수 인라인 클래스 인라인 계층 합치기 Refactoring 1. 계층 합치기 상속 구조를 리팩토링하는 중에 기능을 올리.. 더보기
[Refactoring] 13. 반복문 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 반복문 반복문에 비해 함수형 프로그래밍이라는 더 나은 대안이 생겼다. 반복문을 파이프라인으로 바꾸는 리팩토링을 거치면 필터나 맵핑과 같은 파이프라인 기능을 사용해 보다 빠르게 어떤 작업을 하는지 파악할 수 있다. Refactoring 33. 반복문을 파이프라인으로 바꾸기 고전적인 반복문을 파이프라인 오퍼레이션을 사용해 표현하면 코드를 더 명확하게 만들 수 있다. .. 더보기
[Refactoring] 12. 반복되는 switch 문 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 반복되는 switch 문 예전에는 switch 문이 한 번 등장만 해도 냄새로 취급되었는데 여러 프로그래밍 언어에서 보다 세련된 형태의 switch 문을 지원해 줌으로써 반복해서 등장하는 동일한 switch 문을 냄새로 취급한다. 반복해서 동일한 switch 문이 존재할 경우, 새로운 조건을 추가하거나 기존의 조건을 변경할 때 모든 switch 문을 찾아서 변경해.. 더보기
[Refactoring] 11. 기본형 집착 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 기본형 집착 도메인에 필요한 기본 타입을 만들지 않고 프로그래밍 언어에서 제공하는 기본 타입을 사용하는 경우가 많다. 기본형으로는 단위 또는 표기법을 표현하기 어렵다. 관련 리팩토링 기술 기본형을 객체로 바꾸기 타입 코드를 서브 클래스로 바꾸기 조건부 로직을 다형성으로 바꾸기 클래스 추출하기 매개변수 객체 만들기 Refactoring 1. 필드 옮기기 개발 초기에.. 더보기