else 예약어를 쓰지 않는다 말 그대로 else 예약어를 사용하지 않고 코드를 작성해보라는 지침이다. switch/case 문을 사용하는 것도 허용하지 않는다. 숨은 의미 이 원칙의 제시의도는 한 메소드에서 발생하는 분기문을 줄이자는 것이다. 분기문을 많이 가지고 있는 메소드는 많은 기능을 가지고 있을 확률이 높다. 메소드를 분리하거나, 객체지향적인 구조를 적용해 분기문을 줄일 수 있다. 이는 결국 설계관점에서의 개선을 의미한다. else 키워드는 '조건을 만족하지 않을 때' 를 전제하고 시작한다. 가독성이 떨어질 수 밖에 없다. if 조건을 만족하지 않는 모든 경우 를 의미하기 때문에, 코드를 읽을 때 양 쪽을 함께 생각해야 한다. 오류가 발생할 확률도 높다. 예시 public String getPr..
객체지향 생활체조 원칙 객체지향 생활체조 원칙은 소트웍스 엔솔러지 라는 책에서 다루고 있는 내용이다. 객체지향 프로그래밍을 잘 하기 위한 9가지 기본원칙을 제시하고 있다. 원칙의 제목을 처음 접하는 사람들은 생소하거나 다소 거부감이 들 수도 있을 것 같다. 그러나 이 책에서 주장하는 9가지 원칙에 숨은 의미를 곰곰히 생각해보고 소스에 적용하면, 어느새 깔끔한 구조의 객체지향 설계가 완성되는 것을 경험할 수 있다. 규칙 1. 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다 들여쓰기의 depth를 2 이상으로 두지 말라는 지침이다. 예를 들어서 for 또는 while 반목문 안에 if문이 있으면 indent depth가 2인 코드가 된다. 반복문 안에 반복문이 존재하는 것도 마찬가지다. 숨은 의미..
매직넘버 / 리터럴 사용 매직넘버/리터럴 이란 프로그래밍에서 비즈니스적 의미를 가진 숫자나 문자를 그대로 표현한 것을 칭한다. public class BankingAccount { private BigDecimal depositAmount; public String productName(String productCode) { if ("1".equals(productCode)) { return "입출금통장"; } if ("2".equals(productCode)) { return "모임통장"; } throw new IllegalArgumentException("상품이 존재하지 않습니다."); } public void makeDeposit(BigDecimal depositAmount) { if (deposi..
- Total
- Today
- Yesterday