2. 개발 가이드라인 | 객체지향 생활 체조 원칙 - DDD-Community/DDD-12-MOYORAK-API GitHub Wiki

🏄🏻 슬기로운 객체지향 생활 체조 원칙 가이드

아래는 객체지향적인 코드 작성을 위한 생활 속 원칙입니다.
꼭 지켜야 하는 룰이라기보다는, 더 나은 코드와 설계를 위한 참고 지침으로 삼아주세요.
상황에 따라 유연하게 적용하되, 가능하면 이 원칙을 의식하면서 코드를 작성해보면 좋습니다 😊

📌 객체지향 생활 체조 원칙

  1. 한 메서드에 오직 한 단계의 들여쓰기만 한다.
    • 들여쓰기 단계가 깊어질수록 복잡도가 급격히 높아집니다. 가독성과 유지보수를 위해 조건문이나 반복문은 메서드로 분리합니다.
  2. else 예약어를 쓰지 않는다.
    • 조건이 맞는 경우 바로 반환(return)하거나 예외를 던져 흐름을 분기하세요. 복잡한 로직 구조를 단순화할 수 있습니다.
  3. 모든 원시값과 문자열을 포장한다.
    • 의미 없는 int, String 같은 타입보다는, 명확한 역할을 가진 값 객체로 감싸는 것이 더 좋은 설계입니다.
  4. 한 줄에 점을 하나만 찍는다.
    • 메서드 체이닝, 체이닝된 객체 접근을 줄여 디버깅을 쉽게 하고, 결합도를 낮춥니다.
  5. 줄여 쓰지 않는다(축약 금지).
    • 변수명이나 메서드명을 명확하게 작성하세요. 축약어는 오히려 가독성을 떨어뜨립니다.
  6. 모든 엔티티를 작게 유지한다.
    • 클래스 크기를 작게 유지하고, 하나의 책임만 가지도록 설계합니다(SRP 원칙과 연결됩니다).
  7. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
    • 많은 필드는 그 자체로 클래스가 너무 많은 역할을 한다는 신호일 수 있습니다. 의미 있는 객체로 추출할 수 있는지를 고민해보세요.
  8. 일급 컬렉션을 쓴다.
    • 단순히 List, Map만 넘기지 말고, 의미를 부여한 래퍼 클래스로 감싸서 객체로 다루세요.
  9. 게터/세터/프로퍼티를 쓰지 않는다.
    • 객체의 내부 데이터를 직접 꺼내지 말고, 객체에게 메시지를 보내서 행위를 위임하세요.

꼭 지켜야 할 규칙이라기보다는, 더 나은 객체지향 코드를 작성하기 위한 실천 가이드로 생각해 주세요.
각자의 스타일을 존중하되, 코드의 일관성을 위해 함께 참고하면 좋겠습니다.
⚠️ **GitHub.com Fallback** ⚠️