Monday

소프트웍스 앤솔러지 - 객체지향 생활 체조 1줄 정리 본문

개발/TDD

소프트웍스 앤솔러지 - 객체지향 생활 체조 1줄 정리

뉴비2 2022. 6. 7. 21:28

 

객체지향 생활 체조 9가지

  1. 한 메서드에 오직 한 단계의 들여쓰기만 한다.
    -> 한 메서드는 1가지 일만 하게 하자. 만약 중첩된 제어문이 있다면 1가지 이상의 일을 하고 있는 것이다.
  2. Else 예약어를 쓰지 않는다.
    -> 다형성 등을 이용하여 분기를 최소화 하자. 간단한 반환 목적의 분기라면 if 문만 사용하자.
  3. 모든 원시 값과 문자열을 포장한다.
    -> 도메인 관련 변수에 의미를 부여하고, 유효성의 관한 책임을 변수가 가질 수 있도록 객체로 포장하자.
  4. 한 줄에 점을 하나만 찍는다.
    -> 점을 찍는다는 것은 내부 인스턴스에 접근하는 것이다. 점을 여러 개 찍는다면 결합도가 강한 것이니 설계를 다시 고려하자.
  5. 줄여쓰지 않는다(축약 금지)
    -> 이름이 길어진다면 여러 책임이 부여된 것일 수도 있다. 그런 경우에는 책임 분리를 고려하자.
  6. 모든 엔티티를 작게 유지하자(엔티티= 클래스, 패키지를 통틀어 업무적 구분을 갖는 단위)
    -> 엔티티를 작성할 때 하나의 목적을 갖게 하자. 클래스부터 작은 단위로 만들고, 비슷한 목적의 클래스를 모아 패키지로 만들자.
  7. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.(인스턴수 변수= 원시타입, 컬렉션과 같이 기본 또는 자료구조형의 변수)
    -> 인스턴스 변수가 많다는 것은 클래스가 여러 역할을 하고 있는 것일 수 있다. 따라서, 변수들을 모아 추상화 할 수 없는 지 등을 고려하자.
  8. 일급 컬렉션을 쓴다.
    -> 3번과 비슷하다. 컬렉션 1개를 객체로 만들어 의미를 부여하고, 불변성을 보장하며, 검증의 책임을 본인이 갖게하자.
  9. getter/setter/프로퍼티를 쓰지 않는다.
    -> 도메인 오브젝트로 설계한 VO 혹은 Entity에는 getter/setter/프로퍼티 사용을 지양하자.
Comments