본문 바로가기

책 내용 정리/[책] 내 코드가 그렇게 이상한가요?6

12장 메서드: 좋은 클래스에는 좋은 메서드가 있다. 12.1 반드시 현재 클래스의 인스턴스 변수 사용하기 메서드는 반드시 현재 클래스의 인스턴스 변수를 사용하도록 설계하는 것이 기본 원칙이다. 다른 클래스의 인스턴스 변수를 변경하는 메서드는 좋지 않다. (응집도가 낮은 구조가 될 수 있끼 때문이다.) 12.2 불변을 활용해서 예상할 수 있는 메서드 만들기 12.3 묻지 말고 명령하라 12.4 커맨드/쿼리 분리 아래 메서드는 상태 변경과 추출을 동시에 하고 있다. int gainAndGetPoint(){ point += 10; return point; } 상태 변경과 추출을 동시에 하는 메서드는 여러 문제의 원인이 된다고 한다. 커맨드-쿼리 분리라는 패턴이 있다. 메서드는 커맨드 또는 쿼리 중에 하나만 하도록 설계해야 한다는 패턴이다. 메서드 종류 구분 설.. 2023. 7. 28.
7장 컬렉션: 중첩을 제거하는 구조화 테크닉 https://link.coupang.com/a/37DdD 내 코드가 그렇게 이상한가요? : 좋은 코드/나쁜 코드로 배우는 설계 입문 COUPANG www.coupang.com ↑ 정말 재밌게 봤고 좋은 책 7.1 이미 존재하는 기능을 다시 구현하지 말기 자바 표준 컬렉션 라이브러리에는 여러 가지 검증된 메서드들을 다양하게 제공하고 있다. 그러니 for문 반복문을 사용해서 컬렉션을 직접 조작하고 있다면, 표준 라이브러리에 같은 기능을 제공하는 메서드가 있는지 확인 먼저 해보고 있다면 사용하는 것이 좋다. ※ 바퀴의 재발명을 하지 말라! 7.2 반복 처리 내부의 조건 분기 중첩 7.2.1 조기 컨티뉴로 조건 분기 중첩 제거하기 7.2.2 조기 브레이크로 중첩 제거하기 7.3 응집도가 낮은 컬렉션 처리 컬렉.. 2023. 7. 27.
6장 조건 분기: 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법 https://link.coupang.com/a/37DdD 내 코드가 그렇게 이상한가요? : 좋은 코드/나쁜 코드로 배우는 설계 입문 COUPANG www.coupang.com ↑ 정말 재밌게 봤고 좋은 책 인터페이스는 switch 조건문의 중복(전략패턴)을 제거할 수 있을 뿐만 아니라, 다중 중첩된 복잡한 분기를 제거(정책패턴, 같은 판정 로직을 재사용하려면? (정책 패턴))하는 데 활용할 수 있다. 6.1 조건 분기가 중첩되어 낮아지는 가독성 if 조건문을 중첩해서 구현한 예 아래 조건들을 만족하면 마법을 발동할 수 있는 로직이다. // 살아 있는가 if ( 0 < member.hitPoint){ // 움직일 수 있는가 if ( member.catAct()){ // 매직 포인트가 남아 있는가 if (.. 2023. 7. 23.
5장 응집도: 흩어져 있는 것들 https://link.coupang.com/a/37DdD 내 코드가 그렇게 이상한가요? : 좋은 코드/나쁜 코드로 배우는 설계 입문 COUPANG www.coupang.com ↑ 정말 재밌게 봤고 좋은 책 응집도란 모듈 내부에 있는 데이터와 로직 사이의 관계가 얼마나 강한지 나타내는 지표이다. 5.1 static 메서드 오용 5.1.1 static 메서드는 인스턴스 변수를 사용할 수 없음 static 메서드는 당연하게도 인스턴스 변수를 사용할 수 없다. 그렇기에, static 메서드로 만든 시점에 바로 데이터와 그 데이터를 조작하는 로직의 위치가 나눠지게 된다. (응집도가 낮아진다) class OrderManager{ static int add(int moneyAmount1,int moneyAmount.. 2023. 7. 18.