refactoring #4 simplifying conditional express
- if 구문 안이 장황해지면 읽기 힘들다. 가능하면 extract 한다
- nested if 를 and 로 묶거나, 동일한 결과를 return 하는 if를 or 로 묶어서 extract한다
- if 와 else 모두에 중복된 코드가 있으면 if-else 밖으로 뺀다.
- nested hell은 피한다. exception, 바로 return 하는 것들을 최대한 빼고 평평하게 만든다
- switch-case 가 길어지고 복잡해지면, 각각의 case 를 abstract- subclass 로 뺄 수 있는지 본다. 이 경우 새로 추가되는 case 가 있다 해도 기존 class 수정 없이 subclass만 신규 추가된다는 부가적인 장점도 있다.
- 메소드 실행시 Assert.isTrue 로 분명히 할건 assert 걸어둔다. 꼭 JUnit 에서만 쓰이는게 아니다. assertion 을 확실히 해두면 live documentation 이 된다. 물론 overdo 해선 안된다.
introduce Null object 는 처음 본다. 예를들어 if(customer==null) 같은 체크가 많으니, NullCustomer 라는 class 를 Customer class 에서 상속받아 만들어서 null check 를 더 간결하게 하는 것이다. 더 복잡하게 하는거 같은데. 어쨌든 이런 방법도 있다니.
Comments
Post a Comment